转载的~es5

数组常用API

2016-10-26  本文已影响28人  Mescal川

1.reverse()

将数组的元素颠倒过来,也就是变成逆序,此方法会修改原数组。

var arr=[1,2,3,4,5];
console.log(arr.reverse());//5,4,3,2,1
console.log(arr);//5,4,3,2,1

2.sort()

默认对数组进行升序排序。此方法会修改原数组。

var arr=[5,4,3,2,1];
arr.sort();
console.log(arr);//1,2,3,4,5

如果数组中 存放的不是整数呢?假设数组中有字符串1,10,9,100那么最终的排序结果却是1,10,100,9。这是因为sort是按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

function compare(value1,value2){
       return value1-value2;
    }
}
var arr=["1","10","9","100"];
arr.sort(compare);
console.log(arr);//["1","9","10","100"]

两个字符串数字相减会转化为整数,所以当value1小于value2时会返回负数,当value1大于value2时会返回正数,sort会根据这些不同的返回值来进行排序(在这里就是按照字符串的数字值来排序)。

3.concat()

数组的拼接,创建当前数组的副本,将接收到的参数添加到这个副本中并返回新构建的数组。

var arr1=["black","white","red"];
var arr2=arr1.concat("blue");
console.log(arr2);//["black","white","red","blue"]

4.slice()

可以把slice当作创建当前数组的子数组,它的参数代表数组的位置,当只有一个参数时,返回从该位置到数组末尾的子数组,当有两个参数时,返回起始位置到结束位置-1的子数组。

var arr=["red","green","blue","yellow"];
var arr1=arr.slice(1);
var arr2=arr.slice(1,3);
console.log(arr1);//["green","blue","yellow"]
console.log(arr2);//["green","blue"]

5.splice()

splice可以说是数组的所有方法中最强大的方法了,它既可以实现删除,也可以实现插入,还可以实现替换。它接受三个参数,要删除的第一项的位置,要删除的项数,要替换的新数据。

如果指定前两个参数就可以实现删除,如果指定三个参数并且第二个参数为0,就是实现了插入,如果指定了三个参数就实现了替换。
splice在原数组上进行修改,并返回删除的项。

var arr=["red","green","blue","yellow"];
arr.splice(0,2);//删除数组中的前两项
console.log(arr);//["blue","yellow"]
arr.splice(0,0,"red","green");//插入
console.log(arr);//["red","green","blue","yellow"]
arr.splice(0,1,"black");//替换掉第一个元素
console.log(arr);//["black","green","blue","yellow"]

6.indexOf()、lastIndexOf()

返回某个元素的位置,indexOf是从数组的开头查找,lastIndexOf是从后往前找。

var arr=[1,2,3,1,5];
console.log(arr.indexOf(1));//0
console.log(arr.lastIndexOf(1));//3
上一篇 下一篇

猜你喜欢

热点阅读