不改变原数组:
- concat()
- join()
- slice()
- flat()
- toString()
改变原数组:
- pop()
- push()
- reverse()
- shift()
- unshift()
- sort()
- splice()
不改变原数组:
array.concat(array)
连接两个或多个数组 返回被连接数组的一个副本
[1,2].concat([3,4])
// expected output: "[1,2,3,4]"
join(string)
把数组中所有元素放入一个字符串 返回字符串
['Fire', 'Air', 'Water'].join('')
// expected output: "FireAirWater"
slice(begin[, end])
从已有的数组中返回选定的元素 返回一个新数组
['ant', 'bison', 'camel', 'duck', 'elephant'].slice(2, 4)
// expected output: Array ["camel", "duck"]
flat()
拍平数组,默认仅拍平一维
var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]
//使用 Infinity,可展开任意深度的嵌套数组
var arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
toString()
把数组转为字符串 返回数组的字符串形式
[1,2].toString()
// expected output: "1,2"
改变原数组:
pop()
删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined 返回被删除的元素
push()
向数组末尾添加一个或多个元素 返回新数组的长度
reverse()
颠倒数组中元素的顺序 返回该数组
shift()
把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined 返回第一个元素的值
unshift()
向数组的开头添加一个或多个元素 返回新数组的长度
sort([compareFunction])
compareFunction:用来指定按某种顺序进行排列的函数。 省略则对数组元素进行(ascii)排序 返回该数组
let numbers = [4, 2, 5, 1, 3]
numbers.sort((a, b) => a - b) // return > 0, a <=> b
// [1, 2, 3, 4, 5]
splice(start[, deleteCount[, item1[, item2[, ...]]]])
从数组中添加/删除项目 返回被删除的元素
let months = ['Jan', 'March', 'April', 'June'];
// 插入
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'June']
// 替换
months.splice(4, 1, 'May','Lili');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May", "Lili"]
// 删除
months.splice(4, 2);
// delete 2 element start at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April"]