[英]Converting Array of objects to arrays of key, value array
我有一个 JSON 输入格式,这是一个例子:
{
"friends": [
{
"id": "5a8d4euyiuyiuyhiuyc022c7158d5",
"name": "Gloria Coffey"
},
{
"id": "5a8d4e2rytuyiyuyiytiy3e426",
"name": "Shawn Ellison"
}
]
}
我会将其转换为数组键:值数组,如下所示:
[[id : "5a8d4euyiuyiuyhiuyc022c7158d5", name:"Gloria Coffey"],[id : "5a8d4e2rytuyiyuyiytiy3e426", name:"Shawn Ellison"]]
我所做的:
search(event) {
this.searchRmpmService.getResults(event.query).then(data => {
this.results = data.friends;
console.log(this.results);
let output = [];
output= Object.entries(this.results);
console.log(output);
});
this.results
的第一个 console.log 向我打印了一个对象数组
然后我的output
数组打印:
0:Array(2)
0:"0" <-- ??
1:{
id:"5a8d4e2ffead0c022c7158d5",
name:"Gloria Coffey"
}length:2__proto__:Array(0)
我会是什么
id : 5a8d4e2ffead0c022c7158d5
name : Gloria Coffey
你想要达到的目标是不可能的。 您想要的最接近的解决方案是这样的:
let friends = [ { id: "5a8d4euyiuyiuyhiuyc022c7158d5", name: "Gloria Coffey" }, { id: "5a8d4e2rytuyiyuyiytiy3e426", name: "Shawn Ellison" } ] function convert(param) { let res = {} for (let item of param) { let id = item.id res[id] = item.name } return res } console.log(convert(friends))
这不是数组,但您可以像这样访问它:
let myObj = convert(friends)
console.log(myObj['5a8d4euyiuyiuyhiuyc022c7158d5'])
我希望这会做你想做的。
你也可以像这样使用Object.fromEntries()
来做到这一点:
function flattenArrayToObject(arr) {
let entries = arr.map(el => [el.id, el.name])
let obj = Object.fromEntries(entries)
return obj;
}
或者,如果您确实需要,则使用单衬:
let flattenArray = arr => Object.fromEntries(arr.map(el => [el.id, el.name]))
let friends = [ {id: "158d5", name: "Gloria"}, {id: "3e426", name: "Shawn"} ] function flattenArrayToObject(arr) { let entries = arr.map(el => [el.id, el.name]) // [["158d5","Gloria"], ["3e426","Shawn"]] let obj = Object.fromEntries(entries) return obj; } console.log(flattenArrayToObject(friends))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.