Javascript 通过对象数组进行映射,甚至通过与其他对象相比没有一个或两个关键点的对象进行映射

Javascript 通过对象数组进行映射,甚至通过与其他对象相比没有一个或两个关键点的对象进行映射,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,标题。我可以有两种或三种类型的对象,但如果将来的对象中添加了任何新的键/属性,我希望使用可靠的函数来覆盖所有其他情况 每当我在具有相同属性obj1、obj4的对象之间映射时,一切都是K。问题是,当我想要创建一个函数来映射arr中的所有对象时,键可能在特定对象中,也可能不在特定对象中 我在考虑obj中的“键”是否为“键”,但这并不能保证将来功能的可靠性,除非我能够通过创建具有唯一键对象的新数组来分析arr中的所有对象键,否则可能会添加新键。但若对象有10个键,并且在一个数组中有1000多个对象,那

标题。我可以有两种或三种类型的对象,但如果将来的对象中添加了任何新的键/属性,我希望使用可靠的函数来覆盖所有其他情况

每当我在具有相同属性obj1、obj4的对象之间映射时,一切都是K。问题是,当我想要创建一个函数来映射arr中的所有对象时,键可能在特定对象中,也可能不在特定对象中

我在考虑obj中的“键”是否为“键”,但这并不能保证将来功能的可靠性,除非我能够通过创建具有唯一键对象的新数组来分析arr中的所有对象键,否则可能会添加新键。但若对象有10个键,并且在一个数组中有1000多个对象,那个么我认为会出现性能问题;如果我错了,请纠正我

这同样适用于。拥有自己的财产


根据猜测,您可能需要一个函数,例如

函数fillMissingKeysa{ var keys=a.reducek,o=>Object.assignk,Object.keyso,[] .reduceo,k=>o[k]=null,o,{}; 返回a.mapo=>Object.assign{},key,o; } var arr=[ obj1={ 关键1:val1, 键2:val2, 键3:val3 }, obj2={ 键3:val3 }, obj3={ 关键1:val4, 键2:val5, 关键3:val1, 键4:val8 }, obj4={ 关键1:val6, 键2:val7 } ];
logfillMissingKeysarr您可以使用或循环动态获取或循环对象的键,而不是使用对象可能拥有的键。像这样:

var obj={ 关键1:2, 关键2:3, 密钥未知:5 } console.logMETHOD 1:; var keys=Object.keysobj; console.logobj有以下键:,键; console.log\n方法2:; obj中的forvar键{ console.log“+key+”是一个键;
}不清楚你在问什么。你到底想要什么。。?我有一种奇怪的感觉,你需要一个物体。什么是K?请添加一些用例。如何映射?你把这些映射到什么?映射通过是一种奇怪的方式来表达它;你只是在循环而不是映射吗?我正在编辑帖子,想了想你的答案,事实上,这就是我想要的!完全忘记了Object.assign
const arr = [
  obj1 = {
    key1: val1,
    key2: val2,
    key3: val3
  },
  obj2 = {
    key3: val3
  },
  obj3 = {
    key1: val4,
    key2: val5,
    key3: val1
  },
  obj4 = {
    key1: val6,
    key2: val7
  }
]