使用Lodash删除数组中的元素 [英] Removing elements in an array using Lodash

查看:5732
本文介绍了使用Lodash删除数组中的元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个数组:

var fruits = ['Apple', 'Banana', 'Orange', 'Celery'];

我使用Lodash的删除,如下所示:

And I use Lodash's remove like so:

_.remove(fruits, function (fruit) {
  return fruit === 'Apple' || 'Banana' || 'Orange';
})

结果是 ['Apple','Banana','Orange','Celery'] ,而我预计它会 ['Apple','Banana','Orange ] 。为什么会这样?

The result is ['Apple', 'Banana', 'Orange', 'Celery'], while I expected it to be ['Apple', 'Banana', 'Orange']. Why is this so?

推荐答案

因为 fruit Celery,您正在测试:

"Celery" === 'Apple' || 'Banana' || 'Orange'

评估为

false || true || true

true

您无法使用该语法。要么长途跋涉:

You can't use that syntax. Either do it the long way around:

_.remove(fruits, function (fruit) {
  return fruit === 'Apple' || fruit === 'Banana' || fruit === 'Orange'
});

或测试阵列成员资格:

_.remove(fruits, function (fruit) {
  return _.indexOf(['Apple', 'Banana', 'Orange'], fruit) !== -1
});

这不仅限于JavaScript,实际上是一个常见错误(例如这个问题

This is not limited to JavaScript, and is in fact a common mistake (e.g. this question)

这篇关于使用Lodash删除数组中的元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆