使用数组

时间:2019-03-07 13:09:55

标签: javascript arrays

我想从ID数组中包含相同ID的数据数组中删除所有对象。如何在不循环的情况下完成此任务?

const id = [1, 2];
const data = [
    {id: 1},
    {id: 2},
    {id: 3}
];
console.log(data);

4 个答案:

答案 0 :(得分:1)

您可以尝试使用Array.prototype.filter()

  

filter()方法将创建一个新数组,其中包含所有通过提供的功能实现的测试的元素。

Array.prototype.includes()

  

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>