Javascript 展平包含键值的对象数组
假设我有以下存储单个键\值对的对象数组:Javascript 展平包含键值的对象数组,javascript,arrays,lodash,javascript-objects,key-value,Javascript,Arrays,Lodash,Javascript Objects,Key Value,假设我有以下存储单个键\值对的对象数组: var someArray = [ {foo: 1}, {bar: 2} ]; 我想将此数组展平为单个对象,其中来自原始对象的每个关键点都成为新单个对象的属性,如下所示: someObject = { foo: 1, bar: 2 } 我将始终拥有唯一的密钥,并且只有一个密钥\值配对 我知道如果我在foreach中循环数组,那么我只能访问该项的索引和值,例如 0: {foo: 1} 我希望能够循环,当访问该项时,分别
var someArray = [
{foo: 1},
{bar: 2}
];
我想将此数组展平为单个对象,其中来自原始对象的每个关键点都成为新单个对象的属性,如下所示:
someObject = {
foo: 1,
bar: 2
}
我将始终拥有唯一的密钥,并且只有一个密钥\值配对
我知道如果我在foreach中循环数组,那么我只能访问该项的索引和值,例如
0: {foo: 1}
我希望能够循环,当访问该项时,分别读取键和值,以便可以附加到新对象上
我觉得洛达斯应该能帮上忙,但我正在努力寻找他们的哪些方法能帮上忙
有人能给我指出正确的方向吗
谢谢您可以迭代并使用以获得具有所有属性的新对象
var someArray=[{foo:1},{bar:2}],
result=someArray.reduce(函数(r,a){
返回Object.assign(r,a);
}, {});
控制台日志(结果)代码>使用reduce
和Object assign
可以快速完成此操作:
var someArray=[
{foo:1},
{bar:2}
];
var result=someArray.reduce((acc,obj)=>Object.assign(acc,obj),{})
console.log(结果)
.as控制台包装{max height:100%!important;top:0;}
这里不需要lodash,只需使用Object.assign()
和扩展语法即可
var someArray=[
{foo:1},
{bar:2}
];
var obj=Object.assign({},…someArray)
log(obj)
当您有[{foo:1,bar:1},{foo:2:bar:2}]时,这个问题的逻辑会发生一些变化。您将得到第二个对象。是否可以调整此逻辑以将所有关系放入单个对象中?为此情况编写所需的输出。{“foo”:1,“bar”:1,“foo”:2,“bar”:2}这是无效的结果,您不能重复键。{“foo”:1,“bar”:2,“test”:3,“test2”:4}