我尝试使用此函数根据索引过滤数组并将拆分的字符串返回到新数组
const arr = ['arr 1','arr 2','arr 3','arr 4']
const newArr = arr.filter((val,index)=> {
if(index <= 1) {
return val.split(' ')
}
})
newArr应该返回此内容,
[['arr','1'],['arr','2']]
但它返回了这个,
["arr 1", "arr 2"]
以下是JS BIN中的代码:https://jsbin.com/zoguwoyexe/edit?js,console
Split在map函数中工作,但我想知道为什么它在filter中没有工作,有谁知道这个?
答案 0 :(得分:2)
filter
希望您返回true
- y或false
- y值。它保持了真实和丢弃的谬误。它不返回您返回的值,它返回输入数组的子集。
通过使用过滤器和地图,就像这样,应该得到你期望的结果。
const arr = ['arr 1','arr 2','arr 3','arr 4']
const newArr = arr
.filter((val,index) => (index <= 1))
.map((val, index) => val.split(' '));