有条件的javascript过滤方法

时间:2018-10-09 09:28:20

标签: javascript arrays json

想知道是否有一种方法可以使用带有内部条件的 filter 方法,因此在这种情况下,颜色不能为黑色,因此带有标签和值为black的对象将获胜不予退还。下面的代码无法正常工作...

function mapColors ({ colors } = colorsConfig) {
  return colors.filter(color => ({
    label: color.text !== 'black',
    value: color.text !== 'black'
  }))
}

4 个答案:

答案 0 :(得分:1)

过滤器期望您返回布尔值

function mapColors ({ colors } = colorsConfig) {
  return colors.filter(color => color.label !='black' && color.value!='black');
  }))
}

答案 1 :(得分:1)

您误解了Array.filter()方法,您需要将回调传递给此方法,该方法返回true或false,但是您的示例返回一个对象。要实现您想要的目标,我将其更改为:

return colors.filter(color => (color.text !== 'black'))

答案 2 :(得分:0)

您可以检查text并仅获得非黑色物品。

function mapColors ({ colors } = colorsConfig) {
    return colors.filter(({ text } => text !== 'black');
}

答案 3 :(得分:0)

您应该传递一个回调函数进行过滤

function mapColors ({ colors } = colorsConfig) {
    return colors.filter(color => {
        return color.text !== 'black' && color.label !== 'black'
    })
}