我想从ID数组中包含相同ID的数据数组中删除所有对象。如何在不循环的情况下完成此任务?
const id = [1, 2];
const data = [
{id: 1},
{id: 2},
{id: 3}
];
console.log(data);
答案 0 :(得分:1)
您可以尝试使用Array.prototype.filter()
filter()
方法将创建一个新数组,其中包含所有通过提供的功能实现的测试的元素。
includes()
方法确定数组的条目中是否包含某个值,并根据需要返回true或false。
const id = [1, 2];
const data = [
{id: 1},
{id: 2},
{id: 3}
];
var res = data.filter(i => !id.includes(i.id));
console.log(res);
答案 1 :(得分:0)
let newData = data.filter(item => !id.includes(item.id));
console.log(newData);
答案 2 :(得分:0)
您可以使用.filter()
和.includes()
来过滤对象。
const id = [1, 2];
let data = [
{id: 1},
{id: 2},
{id: 3}
];
data = data.filter((item) => (!id.includes(item.id)));
console.log(data);
答案 3 :(得分:0)
您可以使用lodash https://lodash.com/docs/4.17.11#uniqBy中的uniqBy方法
const uniqArray = _.uniqBy([{ 'id': 1 }, { 'id': 2 }, { 'id': 1 }], 'id');
console.log(uniqArray)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>