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