![](/img/trans.png)
[英]How to add the key with value for each object inside an array of objects?
[英]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.key
和Object.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.