使用Lodash删除数组中的元素 [英] Removing elements in an array using Lodash
本文介绍了使用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屋!
查看全文