ES5 - 数组API 详解(2)

数组API


1. 排序方法

  • Array.prototype.reverse()

    reverse() 方法用于颠倒数组中元素的顺序。

    语法:array.reverse()

    在这里插入图片描述

    //颠倒数组中元素的顺序
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.reverse();
    console.log(fruits)
    //fruits结果输出:Mango,Apple,Orange,Banana
    
  • Array.prototype.sort()

    sort() 方法用于对数组的元素进行排序。如果调用该方法时没有使用参数,将按字母顺序(Ascall编码)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。排序顺序可以是字母或数字,并按升序或降序。排序顺序可以是字母或数字,并按升序或降序。

    语法: array.sort(sortfunction)

    在这里插入图片描述

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.sort();
    console.log(fruits)
    //fruits 输出结果:Apple,Banana,Mango,Orange
    
  • 关于升序和降序的条件

    当 a>b 时,
    a - b > 0  ,排序结果 ===> b,a (升序)
    b - a < 0  ,排序结果 ===> a,b (降序)
    
    当 b>a 时,
    a - b < 0  ,排序结果 ===> a,b (升序)
    b - a > 0  ,排序结果 ===> b,a (降序)
    
    当 a=b 时,
    a - b = b - a =0 , 排序结果 ===> 保持不变
    

    无论a>b还是b>a,return a-b 总能得到升序的结果,而 return b-a 总能得到降序的结果。

    数字升序

    var points = [40,100,1,5,25,10];
    points.sort(function(a,b){
    	return a-b
    });
    //points输出结果:1,5,10,25,40,100
    

    数字降序

    var points = [40,100,1,5,25,10];
    points.sort(function(a,b){
    	return b-a
    });
    //fruits输出结果:100,40,25,10,5,1
    

2.操作方法

  • Array.prototype.concat()

    concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    语法: array1.concat(array2,array3,...,arrayX)

    在这里插入图片描述

    实例:合并三个数组的值

    	var hege = ["Cecilie", "Lone"]; 
    var stale = ["Emil", "Tobias", "Linus"]; 
    var kai = ["Robin"]; 
    var children = hege.concat(stale,kai);
    //children 输出结果:Cecilie,Lone,Emil,Tobias,Linus,Robin
    
  • Array.prototype.slice()

    slice() 方法可从已有的数组中返回选定的元素。可提取字符串的某个部分,并以新的字符串返回被提取的部分。

    语法: array.slice(start, end)

    var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; 
    var citrus = fruits.slice(1,3);
    //citrus 结果输出:Orange,Lemon
    
  • Array.prototype.splice()

    splice() 方法用于添加或删除数组中的元素。(会改变原始数组)

    语法: array.splice(index,howmany,item1,.....,itemX)

    在这里插入图片描述

    数组中添加新元素:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    //从数组索引位置 2 开始,不删除元素,添加两个新的元素"Lemon","Kiwi"
    fruits.splice(2,0,"Lemon","Kiwi");
    //fruits输出结果:Banana,Orange,Lemon,Kiwi,Apple,Mango
    

    移除数组的第三个元素,并在数组第三个位置添加新元素:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.splice(2,1,"Lemon","Kiwi");
    
    //fruits输出结果:Banana,Orange,Lemon,Kiwi,Mango
    

    从第三个位置开始删除数组后的两个元素:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.splice(2,2);
    
    //fruits输出结果:Banana,Orange
    

3. 位置方法

  • Array.prototype.indexOf()

    indexOf() 方法可返回数组中某个指定的元素位置。

    语法: array.indexOf(item,start)

    该方法将从头到尾地检索数组。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。

    查找数组中的 “Apple” 元素:

    var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
    var a = fruits.indexOf("Apple");
    
    //a结果输出:2
    //以上输出结果意味着 "Apple" 元素位于数组中的第 3 个位置。
    
  • Array.prototype.lastIndexOf()

    此方法较少用,与indexOf()恰好相反

    lastIndexOf() 方法可返回一个指定的元素在数组中出现的位置,从该字符串的后面向前查找。如果要检索的元素没有出现,则该方法返回 -1。

    语法: array.lastIndexOf(item,start)

    该方法将从尾到头地检索数组。开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置。数组的索引开始位置是从 0 开始的。如果在数组中没找到指定元素则返回 -1。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值