lodash 从数组中获取与值数组不匹配的项
lodash get items from array that does not match array of values
要从数组中获取与值数组匹配的项目,我使用这个:
var result =_(response).keyBy('id').at(arrayOfIDs).value();
我该如何做相反的事情?获取与值数组不匹配的项。
您不需要 lodash,只需使用普通的 javascript;它也更容易阅读...
function getId (val) {
return val.id;
}
function notMatchId (val) {
return arrayOfIDs.indexOf(val) === -1;
}
var result = response.map(getId).filter(notMatchId);
使用 vanilla JS 很容易做到这一点。
var nonMatchingItems = response.filter(function (item) {
return arrayOfIDs.indexOf(item.id) === -1;
});
如果您确实必须使用 lodash,lodash's _.filter()
也可以使用相同的方法。
以上ES6版本:
var nonMatchingItems = response.filter(item => arrayOfIDs.indexOf(item.id) === -1);
// or, shorter
var nonMatchingItems = response.filter(item => !arrayOfIDs.includes(item.id));
要从数组中获取与值数组匹配的项目,我使用这个:
var result =_(response).keyBy('id').at(arrayOfIDs).value();
我该如何做相反的事情?获取与值数组不匹配的项。
您不需要 lodash,只需使用普通的 javascript;它也更容易阅读...
function getId (val) {
return val.id;
}
function notMatchId (val) {
return arrayOfIDs.indexOf(val) === -1;
}
var result = response.map(getId).filter(notMatchId);
使用 vanilla JS 很容易做到这一点。
var nonMatchingItems = response.filter(function (item) {
return arrayOfIDs.indexOf(item.id) === -1;
});
如果您确实必须使用 lodash,lodash's _.filter()
也可以使用相同的方法。
以上ES6版本:
var nonMatchingItems = response.filter(item => arrayOfIDs.indexOf(item.id) === -1);
// or, shorter
var nonMatchingItems = response.filter(item => !arrayOfIDs.includes(item.id));