将对象数组转换为键数组数组

问题描述 投票:0回答:1

我有一个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
javascript arrays
1个回答
0
投票

你想要实现的目标是不可能的。你想要的最接近的解决方案是这样的:

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'])

我希望这会做你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.