js中的数组Array的相关操作

1. 数组之前的拼接

1.1 可以使用最笨的方法,遍历其中一个数组,然后通过每一项都调用push方法添加到另一个数组的后面,即可实现效果,由于比较简单,此处就不在做代码演示。
1.2 使用apply劫持数组的push方法
var arr = ['tom', 'jerry'];
var arr2 = [1, 2];

arr.push.apply(arr, arr2);
// ["tom", "jerry", 1, 2]

这种合并的方法,分别会改变两个集合的数据,最后的结果是两个集合长度和子元素都一样,如果在1万级数据一下,可能看不多差距,但是它会同时改变两个集合,性能自然是要差一点,慎用。

1.3 使用concat(),注意concat()方法生成了一个新的数组,并不改变原数组
var arr = ['tom', 'jerry'];
var arr2 = [1, 2];

var newArr = arr.concat(arr2);
console.log(newArr);
// ["tom", "jerry", 1, 2]

根据测试,此方法操作千万级别的数组合并大约30毫秒,所以性能要比1.2更好。

1.4 使用ES6的...展开运算符
var arr = ['tom', 'jerry'];
var arr2 = [1, 2];

arr.push(...arr2);
console.log(arr)
// ["tom", "jerry", 1, 2]

2. 把数组转换成字符串

2.1 toString()
2.2 toLocaleString()
2.3 join()

3. 数组元素的操作

3.1 删除并返回数组的最后一个元素

pop()

3.2 删除并返回数组的第一个元素

shift()

3.3 向数组最后添加一个元素,并返回数组的长度

push()

3.4 向数组的最前面添加一个元素,并返回数组长度

unshift()

3.5 删除指定元素

splice(index,howmany,item1,.....,itemX)
说明:index:开始删除的下标(如果是负数则从数组末尾开始)
howmany:删除的数量(如果是0的话,则不删除)
item1...:后面的参数是在删除的位置开始添加的元素

4. 截取数组中指定的元素

slice(start,end)
说明:start:开始位置,如果是负值的话,是从数组的末尾开始的
end:截取结束的位置,不包括此位置上的元素

5. 数组中元素的排序问题

sort(sortby)
说明:sortby:是排序的规则函数,可选,如果没有填写的话,默认是按照字符编码的顺序进行,尤其注意数字

let arr = ['10','5', '40', '25', '1000', '1'];
console.log(arr.sort());
// 1,10,1000,25,40,5

要想真正的对数字进行排序的话,还是需要设置比对函数

let arr = ['10','5', '40', '25', '1000', '1'];
console.log(arr.sort( (a, b) =>{ return a - b }  );
// 1,5,10,25,40,1000

6. 数组元素的翻转

reverse()

let arr = [ 'George', 'John', 'Thomas' ];
arr.reverse();
// Thomas,John,George

你可能感兴趣的:(js中的数组Array的相关操作)