本文介绍了使用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 || truetrue 。
您无法使用该语法。要么长途跋涉:
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删除数组中的元素
发布评论