javascript - 检查对象数组中是否存在所有键如果没有找到将其添加到数组中
问题描述
如果我有这个对象数组。我正在寻找从对象数组中添加缺少的键。对于每个缺少的键,最终数组中应该有三个条目,其中 name 字段为空。
myArray = [{id: 1, name: 'John'},
{id: 1, name: 'Ray'},
{id: 1, name: 'Elliot'},
{id: 3, name: 'Elli'},
{id: 3, name: 'Smith'},
{id: 3, name: 'John'}]
my expected output should loook like:
expectedArray = [{id: 1, name: 'John'},
{id: 1, name: 'Ray'},
{id: 1, name: 'Elliot'},
{id: 2, name: ''},
{id: 2, name: ''},
{id: 2, name: ''},
{id: 3, name: 'campbell’},
{id: 3, name: 'Smith'},
{id: 3, name: 'John'},
{id: 4, name: ''},
{id: 4, name: ''},
{id: 4, name: ''}]
我尝试了不同的方法来完成这项任务,但我没有做到。你能帮我怎么做吗?谢谢。
解决方案
我假设,您的意思是,如果给定对象的所有属性与在对象列表中找到的对象不同,则将其添加到列表中。
你可以这样做
const givenObject = {
id: 4,
name: ''
};
myArray.forEach(obj => {
if (obj.id !== givenObject.id || obj.name !== givenObject.name) {
myArray.push(givenObject);
myArray.push(givenObject);
myArray.push(givenObject);
}
})
推荐阅读
- vba - Word 的宏:隐藏以某些单词开头的行
- embedded - 如何为网表综合定义自定义单元?
- r - 无法使用 ShinyApp 中的 SelectInput 按钮选择多列
- c - 直接在位码文件上使用 Clang 静态分析器
- php - 点击时如何在wordpress中调用codeigniter控制器
- bash - 如何使用 bash 脚本在远程主机上执行命令
- apache-kafka - KSQL 中的多个键或外键
- javascript - 如何使用 react-native 实现推送通知
- laravel - Laravel 有两个来自同一张表的外键
- maven-3 - Travis CI 因子模块失败...不存在