数组的遍历
for:
普通版:for(let i=0; i 优化版:for(let i=0,len=arr.length; i 弱化版:for(let i=0; arr[i] != null; i++) { } forEach: arr.forEach((e, index) => { }) 性能比for要弱 变种:Array.prototype.forEach.call(arr, (el, index) => { }) 实际性能要比普通的foreach弱 for...in... :for(let i in arr) { } 效率最低 for...of...:for(let i of arr) { } 性能好于forin map:arr.map((n) => { }) 实际效率还比不上forEach every():数组的每一项都满足给定条件则返回true some():数组中只要有一项满足条件就返回true filter():返回满足给定条件的数据项组成的新数组,不改变原数组 reduce():遍历数组,归并方法 数组的操作 push():向数组的末尾添加一个或多个元素,并返回新的长度 pop():删除数组的最后一个元素,数组的长度减1,并且返回删除元素的值(数组为空时,不改变数组,并返回undefined) unshift():向数组的头部添加一个或多个元素,返回新的长度 shift():删除并返回数组的第一个元素 reverse():颠倒数组中的元素顺序 sort():对数组元素进行排序(默认按照ASCII) concat():链接两个或多个数组 join():把所有的元素放进一个字符串,通过指定的分隔符分割 splice():删除元素,并向数组添加新元素 slice(start, end):从某个已有的数组返回选定的元素(没有end参数时就到数组结尾) indexOf(x, start)、lastIndexOf():查找数组元素的位置,参数:要查的项和起点位置索引arr = [1, 2, 3, 4];
arr.every((item,index,array) => {return item > 2;}); // false
arr.some((item,index,array) => {return item > 2;}); //true
arr.filter((item,index,array) => {return item > 2}); // [3, 4]
arr; // [1, 2, 3, 4]
arr.reduce((prev, cur, index, array) => { return prev + cur}); // 10
(函数返回的任何值都会作为第一个参数传给下一项)
var arr = [10,5,1000,25,1];
arr.sort(); // [1, 10, 1000, 25, 5] 默认按照首字母顺序排
arr.sort((a, b)=>{
return a-b;
}); // [1, 5, 10, 25, 1000] 从大到小排序
var arr = [1, 2, 3, 4, 5, 6];
arr.splice(2, 3); // [3, 4, 5] 删除第三个元素以后的三个数组元素
arr.splice(2, 0, 7, 8); // [] 在第三个元素之前插入7和8
arr; // [1, 2, 7, 8, 9]
arr.splice(2, 3, 9, 10); // [7, 8, 9] 删除第三个元素以后的三个数组元素,并用9和10代替
arr; // [1, 2, 9, 10]