在过滤器内使用时,Split没有做任何事情

时间:2017-05-21 03:34:14

标签: javascript filter split map-function

我尝试使用此函数根据索引过滤数组并将拆分的字符串返回到新数组

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中没有工作,有谁知道这个?

1 个答案:

答案 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(' '));