我接下来要把数组方法全都过一遍,顺手做个整理。
至于为什么整理这个,最近总听说面试经常会问到这个问题,
面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好
据可靠消息了解到,如果你回答的数量少于6个,就会判定你开发经验不足,直接pass
我自己想了一下,我好像也说不出6个
如果你也想不起来6个以上,一块补补课吧
concat()
功能:连接两个数组,返回一个新数组
是否改变原数组:否
用法:arr1.concat(arr2)
测试发现,还可以连接字符串、对象、数字,会直接将传入的值塞到数组最后
copyWithin(target, start, end)
target:插入位置,必传
start:复制开始的位置 可选,默认是 首位
end:复制结束的位置 可选,默认是 最后一位
功能:数组中,拷贝一些元素到另一个位置
是否改变原数组:是
用法:
arr = ['a','b','c','d']
arr.copyWithin(1)
这样写会把数组里所有元素都复制,然后一起放在arr[1]这个位置上
结果:arr = ['a','a','c','d']
entries()
功能:把数组编译成带编号的键值对,然后需要用next().value 依次取出
用法:arr=['a','b','c']
result = arr.entries()
console.log(result.next().value) // [0, 'a']
console.log(result.next().value) // [1, 'b']
console.log(result.next().value) // [ 2, 'c' ]
every(function(currentValue,index,arr))
功能:根据条件,检测数组中的每一个值,返回布尔值
是否改变原数组:否
用法:如果全都符合条件,就返回true,如果有不符合的,就返回false
用法和filter类似,只不过filter返回的是符合条件的数组,这个返回的是布尔值。
fill(value)
功能:你看看这个函数的名字,“填充”,再看看示例。不用解释,秒懂
是否改变原数组:是
用法:arr = [1,2,3,4,5]
arr.fill('a') // 结果 arr=['a','a','a','a','a']
常用:filter(function(currentValue,index,arr), thisValue)
功能:返回所有符合条件的值
是否改变原数组:否
用法:
var arr = [1,2,3,4,5]
var result = arr.filter(function(item){
console.log('检测是否大于3,item:',item)
return item > 3
})
console.log(result)
执行结果:
数组有多少个元素,传入的这个方法就会被执行多少次。如果符合条件,就保留下来,最终再返回给你一个数组
includes(searchElement)
功能:检查是否包含
是否改变原数组:否
用法:arr = [1,2,3,4,5]
arr.includes(1) // true