javascript - 如果多维数组中不存在 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));
任何帮助,将不胜感激。
解决方案
两个数组都是一维数组。
使用.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);
推荐阅读
- drupal - 如何在 Drupal 8 的 .info.yml 文件中包含 Drupal 7 属性?
- javafx - NullPointerException 以及我如何解决它?JAVAFX - 没有 FXML
- java - Java CompletableFuture thenCompose 与几个异步任务
- angular - 如何在 Angular 中读取当前 URL
- flutter - Flutter 中的 Camera Picker 行为异常
- javascript - 用我的开关组件切换文本
- c# - WPF - 尝试创建绑定到数据源的多选表时使用 Datagrid、ListView 或 Listbox
- java - 错误:java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;
- html - SVG中无法解释的额外垂直空间
- c# - NAudio 抛出没有找到合适的转换来编码或解码生产服务器上的内容