[英]How can i get the key of Object inside Array?
我有来自后端服务器的响应数据,如下例所示:
[
{
id: "haskjdhak",
name: "lorem ipsun 1",
desc: "any description 1"
},
{
id: "78khasc",
name: "lorem ipsun 2",
desc: "any description 2"
},
{
id: "56jkjn",
name: "lorem ipsun 3",
desc: "any description 3"
}
]
我的目标是我想将该响应数据分成标头和值,其中标头是key={id,name,desc}
,值是每个索引的值。 好吧,让我举个例子,数据将成为表格数据,如下所示:
ID | 名称 | 描述 |
---|---|---|
哈斯克达克 | lorem ipsun 1 | 任何描述 1 |
78khasc | lorem ipsun 2 | 任何描述 2 |
56jkjn | lorem ipsun 3 | 任何描述 3 |
我可以用什么方法来做?
这样的事情也许可以帮助你
yourArray.map(obj => ({key:"id, name, desc", value:`${obj.id},
${obj.name}, ${obj.desc}`}))
阅读对您问题的编辑,也许这更有用:
使用Map
,对于每个key
您都有一个包含值的数组。
const response = [ {id:"haskjdhak", name: "lorem ipsun 1", desc: "any description 1"}, {id:"78khasc", name: "lorem ipsun 2", desc: "any description 2"}, {id:"56jkjn", name: "lorem ipsun 3", desc: "any description 3"} ] const map = new Map(); response.map(m => (Object.keys(m).forEach(e => { map.get(e) === undefined ? map.set(e, [m[e]]) : map.get(e).push(m[e]) } ))) map.forEach((value,key) => { console.log(`${key} = ${value}`); })
同样使用node.JS
直接使用console.log(map)
你可以看到:
Map(3) {
'id' => [ 'haskjdhak', '78khasc', '56jkjn' ],
'name' => [ 'lorem ipsun 1', 'lorem ipsun 2', 'lorem ipsun 3' ],
'desc' => [ 'any description 1', 'any description 2', 'any description 3' ]
}
这段代码从您的对象中获取所有键,并使用该键创建一个Map
。 如果该键不存在任何值,则添加一个具有初始值的数组; 如果存在一个值(不是undefined
)它push()
新值。
此外,使用这种方法,您的数据可以包含不同的键,例如,使用以下条目数据:
const response = [
{ id: "haskjdhak", name: "lorem ipsun 1", desc: "any description 1" },
{ id: "78khasc", name: "lorem ipsun 2", desc: "any description 2" },
{ id: "56jkjn", name: "lorem ipsun 3", desc: "any description 3" },
{
id: "1"
},
{
new: "value"
},
{
id: "new", name: "new", desc: "new", other: "new"
}
]
结果是:
Map(5) {
'id' => [ 'haskjdhak', '78khasc', '56jkjn', '1', 'new' ],
'name' => [ 'lorem ipsun 1', 'lorem ipsun 2', 'lorem ipsun 3', 'new' ],
'desc' => [
'any description 1',
'any description 2',
'any description 3',
'new'
],
'new' => [ 'value' ],
'other' => [ 'new' ]
}
——原答案——
如果我理解正确,你可以试试这个:
const response = [ {id:"haskjdhak", name: "lorem ipsun 1", desc: "any description 1"}, {id:"78khasc", name: "lorem ipsun 2", desc: "any description 2"}, {id:"56jkjn", name: "lorem ipsun 3", desc: "any description 3"} ] var result = response.map(m => ({key:(Object.keys(m).join(",")), value:(Object.values(m).join(","))})) console.log("result = ", result)
此代码创建一个包含key/value
对象的数组,其中key
是键(包含所有值的字符串), value
相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.