如何在对象数组中分离每个对象的键和值-Javascript

如何在对象数组中分离每个对象的键和值-Javascript,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我有一个具有以下格式的对象数组 var obj = [{ "a": 1 }, { "b": 2 }, { "c": 3 }]; 希望分别从该对象数组中的每个对象中提取键和值,并将其放入一个新数组中 大概是这样的: [{key:a,val:1],{key:b,val:2},{key:c,val:3]} 已尝试以下操作,但不起作用: var obj=[{ a:1 }, { b:2 }, { c:3 }]; const result=obj.mapvalue=>Object.keysv

我有一个具有以下格式的对象数组

var obj = [{
  "a": 1
}, {
  "b": 2
}, {
  "c": 3
}];
希望分别从该对象数组中的每个对象中提取键和值,并将其放入一个新数组中

大概是这样的: [{key:a,val:1],{key:b,val:2},{key:c,val:3]}

已尝试以下操作,但不起作用:

var obj=[{ a:1 }, { b:2 }, { c:3 }]; const result=obj.mapvalue=>Object.keysvalue[0];
logresult;对于当前函数,只返回键,而不是包含键和值的对象。 因此,按照您的逻辑,您只需要添加一个返回对象的返回,其中包含object.key和object.value

看下面,这就是你要找的吗

var arrayObj=[ { a:1 }, { b:2 }, { c:3 } ]; const result=arrayObj.mapobj=>{ 返回{ key:Object.keysobj[0], val:Object.valuesobj[0] } }; console.logresult;我们必须使用Object.keys属性来实现它。请尝试下面的代码

var obj=[{ 答:1,, }, { b:2 }, { c:3 }]; const result=obj.mapvalue=>{ let[key,val]=Object.entriesvalue[0]; 返回{key,val} }; console.logresult您可以使用将对象数组转换为条目数组。然后将每个条目转换为对象:

常量arrayObj=[{a:1},{b:2},{c:3}]; const result=arrayObj .flatMapObject.entries//转换为条目数组 .map[key,val]=>{key,val};//将每个条目转换为对象
console.logresult;不知道它是否相关,但OP的示例中有val:1-因此数字变成了一个字符串。仅提及它-它可能是问题中的一个输入错误或其他不重要的问题。没错,如果他说了什么,我会等待,如果必要,我会调整以返回字符串。您可以执行const[key,val]=Object.entriesvalue[0];并将两者合二为一go@adiga谢谢!让我知道。我会更新它。您能扩展此解决方案以将[a,b,c],[1,2,3]显示为输出吗?