繁体   English   中英

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

[英]How to separate key and value of each object inside array of objects - Javascript

我有以下格式的对象数组

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.map(value => Object.keys(value)[0]); console.log(result); 

使用当前函数,您只返回键,而不是内部包含键和值的对象。 因此,按照您的逻辑,您只需要添加一个返回对象的返回值,该对象内部具有Object.keyObject.value

看到下面,这就是您要找的东西吗?

 var arrayObj = [ { "a": 1 }, { "b": 2 }, { "c": 3 } ]; const result = arrayObj.map((obj) => { return { key: Object.keys(obj)[0], val: Object.values(obj)[0] } }); console.log(result); 

您还可以使用Object.entries(obj)[0] ,如您在Anjaneyulu Batta答案中所见

我们必须使用Object.keys属性来实现它。 试试下面的代码

 var obj = [{ "a": 1, }, { "b": 2 }, { "c": 3 }]; const result = obj.map(value => { let [key, val] = Object.entries(value)[0]; return {key, val} }); console.log(result) 

您可以将Array.flatMap()Object.entries()以将对象数组转换为条目数组。 然后每个条目映射到一个对象:

 const arrayObj = [{ "a": 1 }, { "b": 2 }, { "c": 3 }]; const result = arrayObj .flatMap(Object.entries) // convert to an array of entries .map(([key, val]) => ({ key, val })); // convert each entry to an object console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM