首页 > 解决方案 > 如果多维数组中不存在 Typescript 从数组中删除值

问题描述

我有一个单维和一个对象数组

array1 = [1, 3, 15, 16, 18];

array2 = [
       { id: 1, dinner : pizza },
       { id: 15, dinner : sushi },
       { id: 18, dinner : hummus }
]

我正在尝试根据 id 从 array1 中删除不在 array2 中的值。

我知道如何在两个一维数组中删除,但是当 array2 是对象数组时,我无法修改要删除的代码。

const array1 = array1.filter(id => array2.includes(id));

任何帮助,将不胜感激。

标签: javascriptarraystypescript

解决方案


两个数组都是一维数组。

使用.some()函数和.filter()函数来删除那些array1在任何对象中不作为 id 存在的数字array2

const array1 = [1, 3, 15, 16, 18];
const array2 = [
    { id: 1, dinner : 'pizza' },
    { id: 15, dinner : 'sushi' },
    { id: 18, dinner : 'hummus' }
]

const filteredArr = array1.filter(v => array2.some(o => v == o.id));

console.log(filteredArr);


推荐阅读