前端的笔试题,离不开妙用数组解决存储和顺序,本文复习一下数组的方法,加深印象,补充一些妙用。
方法概览
-
转换
- toLocalString()
- toString()
- valueOf()
-
栈方法
- pop()
array.pop() // 返回pop的元素
- push()
array.push(item1, item2, ..., itemX) // 返回数组新长度
- pop()
-
队列方法
- push()
array.push(item1, item2, ..., itemX) // 返回数组新长度
- shift()
array.shift() // 返回移除的元素
- push()
-
重排序
- sort()
array.sort(sortFunction) // 返回数组的引用,不产生新的副本
- reverse()
array.reverse() // 返回数组的引用,不产生新的副本
- sort()
-
操作方法
-
concat()
array1.concat(array2,array3,...,arrayX) // 返回新数组
-
slice()
array.slice(start, end) // 返回新的数组
array.slice()返回数组的复制。
-
splice()
array.splice(index,howmany,item1,.....,itemX) // 如果从 array 中删除了元素,则返回的是含有被删除的元素的数组。
-
-
位置方法
- indexOf()
array.indexOf(item,start) // 返回第一个出现的位置,如果未找到返回 -1
- lastIndexOf()
// 返回最后一个出现的位置,如果未找到返回 -1
- indexOf()
-
迭代方法
- every()
array.every(function(currentValue,index,arr), context) // context为this的值,下同。返回布尔值,如果所有元素都通过检测返回 true,否则返回 false。
- filter()
array.filter(function(currentValue,index,arr), context) // 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
- some()
array.some(function(currentValue,index,arr) ,context) // 返回布尔值。如果数组中有元素满足条件返回 true,否则返回 false。
- forEach()
array.forEach(function(currentValue, index, arr), context) // 返回undefined!
- map()
array.map(function(currentValue,index,arr), context) // 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- every()
-
归并方法
- reduce()
array.reduce(function(total, currentValue, currentIndex, arr), initialValue) // 返回计算结果,例如求和。
- reduceRight()
array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue) // 返回计算结果。
- reduce()
-
新方法
- keys()
array.keys() // [object Array Iterator]
- includes()
arr.includes(searchElement, fromIndex?) // 返回布尔值。如果找到指定值返回 true,否则返回 false。
- from()
array.from(object, mapFunction, context) // 返回数组对象。用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
- findIndex()
array.findIndex(function(currentValue, index, arr), context) // 返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。
- entires()
array.entries() // 返回数组迭代对象。
- keys()