示例使用的数组
var arr = [1, 2, 3];
ES5 数组方法
不改变原数组
函数说明示例Array.isArray()判断一个值是否为数组Array.isArray(arr); // true
valueOf()返回数组本身arr.valueOf(); // [1, 2, 3]
toString()返回数组的字符串形arr.toString(); // "1,2,3"
join()返回数组成员拼接后的字符串,默认逗号分隔arr.join("-"); // "1-2-3"
concat()返回一个多个数组合并后的新数组arr.concat([4, 5], 6); // [1, 2, 3, 4, 5, 6]
slice()返回切片后的新数组arr.slice(start, end);
forEach()遍历数组的所有成员arr.forEach((element, index, arr)=> {return element;});
map()映射新数组arr.map((element, index, arr)=> {return element;});
filter()返回过滤后的新数组arr.filter((element)=> {return true;});
some()一个为true就返回truearr.some((element, index, arr)=> {return true;});
every()所有为true才返回truearr.every((element, index, arr)=> {return true;});
reduce()从左到右处理arr.reduce((total, element, index, arr)=> {return total + element;});
reduceRight()从右到左处理arr.reduceRight((total, element, index, arr)=> {return total + element;});
indexOf()开头查找元素,没有返回-1arr.indexOf(1); // 0
lastIndexOf()尾部查找元素,没有返回-1arr.lastIndexOf(1); //0
改变原数组
函数说明示例push()数组尾部添加元素,并返回数组长度arr.push(1, 2); // 5
pop()删除数组的最后一个元素,并返回该元素arr.pop(); // 3
unshift()数组头部添加元素,并返回数组长度arr.unshift('a'); //4
shift()删除数组的第一个元素,并返回该元素arr.shift(); // 1
reverse()返回颠倒顺序后的数组arr.reverse(); // [3, 2, 1]
splice()删除数组成员,并添加的数组成员,返回被删除的元素arr.splice(start, deleteCount, ...itmes)
sort()数组排序arr.sort(); //[1, 2, 3]
ES6 数组方法
函数说明示例Array.from()类数组转换成数组Array.from('123'); // ["1", "2", 3"]
Array.of()将一组值,转换为数组Array.of(1, 2, 3); // [1, 2, 3]
copyWithin()返回替换后的数组arr.copyWithin(target, start, end)
find()查找元素,没有返回undefinedarr.find((item)=>item===1)
findIndex()查找元素位置,没有返回-1arr.findIndex((item)=>item===1)
fill()填充一个数组[1, 2, 3].fill(0); // [0, 0, 0]
entries()返回键值对arr.entries()keys()返回键arr.keys()values() 返回值arr.values()includes()是否包含给定的值arr.includes(1); // true
扩展运算符
(1)函数调用
// ES6 的写法
Math.max(...[14, 3, 77])
// 等同于
Math.max(14, 3, 77);
(2)复制数组
const a1 = [1, 2];
// 写法一
const a2 = [...a1];
// 写法二
const [...a2] = a1;
(3)合并数组
// ES5
[1, 2].concat([4, 5])
// ES6
[1, 2, ...[4, 5]]
(4)解构赋值
const [first, ...rest] = [1, 2, 3, 4, 5];
first // 1
rest // [2, 3, 4, 5]
参考 JS Array对象的方法总结(ES5 与 ES6) 二