javascript - 如果其中一个属性包含特定值,则删除数组元素

标签 javascript lodash

我有以下变量:

var data = [{id: '1', name: 'demo1'}, {id: '2', name: 'demo2'}, {id: '3', name: 'demo3'}]

现在我有另一个 id 列表,

var lookFor = ["2", "3"];

现在,我如何从 data 中删除 ididlookFor 数组中不可用的对象>s.

我尝试了以下

_.filter(data, function(item) {
  return _.contains(lookFor, 'id');
});

还有其他办法吗?

最佳答案

嗯,考虑以下几点?

var data = [{id: '1', name: 'demo1'}, {id: '2', name: 'demo2'}, {id: '3', name: 'demo3'}];
var keys = ["2", "3"];

let filteredArray = data.filter(element => keys.indexOf(element.id) != -1);
console.log(filteredArray);

// Output is now 
// 0: {id: "2", name: "demo2"}
// 1: {id: "3", name: "demo3"}

使用这个得到相反的结果:

let filteredArray = data.filter(element => keys.indexOf(element.id) == -1);
console.log(filteredArray);

// Output is:
// 0: {id: "1", name: "demo1"}

这是你想要的吗?

祝你有美好的一天,埃利亚斯

关于javascript - 如果其中一个属性包含特定值,则删除数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52429861/

相关文章:

javascript - 在具有 Express JS 的 Node 应用程序中,如何包含并运行单独的 JS 文件?

javascript - 链接时节点的位置会发生变化(使用 d3.js)

javascript - 验证数组内属性对象的值

javascript - Lodash - 使用 _.some 检查对象数组中的空数组

javascript - 使用 lodash 获取嵌套值

javascript - 如何在vue js中循环遍历数组中的图像数组

javascript - 如何使用 Maxmind Geoip2 Javascript 根据国家/地区重定向流量

javascript - 使用正则表达式查找并替换字符串中的每个第二个反引号

javascript - 如何使用lodash从bigArray中删除smallArray中的所有项目?

javascript - 如何在 JavaScript 中使用回调函数结果填充数组?