【发布时间】:2019-05-09 21:38:46
【问题描述】:
我有一个包含 10 个项目的列表,我必须从中取出 1 个项目。即如果 myItems 中同时存在“Item1”和“item2”,那么我应该从“myItems”中取出“item2”。 (没有箭头功能)与我下面的方法相比,有没有更简单更好的方法。
function getFilteredItems(myItems) {
var items = ['item1', 'item2'];
var filteredItems = myItems.filter(function (myItem) {
return items.indexOf(myItem.name) !== -1;
});
if (filteredItems && filteredItems.length > 1) {
myItems = myItems.filter(function (myItem) {
return 'item2' !== myItem.name;
});
}
return myItems;
}
【问题讨论】:
-
我的答案是唯一没有箭头功能的;任何人都可以理解。
-
同意。但我想避免使用包含,因为“Item1”并不总是相同的。这就是我将项目声明为数组而不是 2 个变量的原因。
-
您避免使用箭头函数的任何具体原因?将箭头函数转换为非箭头函数非常容易。我更新了我的答案。
-
@JacobThomas - 我不能使用 ES6。您的回答从 myItems 中取出 item1 和 item2。只有当 myItems 有 item1 和 item2 时,我才想取出 item2。
-
@San 你是对的,那是我的误解。我更新了我的答案,但老实说,你的功能可以正常工作。我只是喜欢挑战一下自己。
标签: javascript arrays filter ecmascript-5