简体   繁体   English

JavaScript 对象到具有“名称”键的对象数组

[英]JavaScript Object to Array of Objects with 'name' key

Here my initial object :这是我的初始对象:

partners {
  0: "Proxy"
  2: "Skate"
  8: "Air"
}

I want to have this :我想要这个:

partners [
  0:{name: "Proxy"}
  1:{name: "Skate"}
  2:{name: "Air"}
]

I tried this without success :我试过这个没有成功:

var newArray = Object.values(this.initialObject).map(function (value) {
                                return { ['name']: obj[value] };
                            });

Thank you very much.非常感谢。

name does not need to be wrapped in [' '] as it is a key nor do you need to use obj to get the value as value is the variable passed by the function. name不需要包含在[' ']因为它是一个键,也不需要使用obj来获取值,因为value是函数传递的变量。

Try this instead:试试这个:

 var partners = { 0: "Proxy", 2: "Skate", 8: "Air" } var newArray = Object.values(partners).map(function (value) { return {name: value}; }); console.log(newArray)

 const a = { 0: "Proxy", 2: "Skate", 8: "Air" } const result = Object.values(a).map((value) => { return { name: value }; }); console.log(result)

This will do it, you had to replace the obj[value] with value and replace ['name'] with simple name.这将做到这一点,您必须将 obj[value] 替换为 value,并将 ['name'] 替换为简单的名称。

partners ={
  0: "Proxy"
  2: "Skate"
  8: "Air"
} 

var newpartners=[];
    Object.keys(partners).map(item=>{
      newpartners.push({name:partners[item]})
    })

console.log(newpartners);

Yo can use the following methods code您可以使用以下方法代码

 var partners = { 0: "Proxy", 2: "Skate", 8: "Air" } var arr = []; var keys = Object.keys(partners); var values = Object.values(partners); keys.forEach((ele, indx) => { arr.push({ "name": values[indx] }); }) console.log(arr);

 var partners = { 0: "Proxy", 2: "Skate", 8: "Air" } var newArray = Object.values(partners).map(function (value) { return { name : value }; }); console.log(newArray);

You can try something like this, just using an array as a container for the final desired output, and loop over the original object with for ... in loop.您可以尝试这样的操作,只需使用数组作为最终所需输出的容器,并使用for ... in循环遍历原始对象。 Hope this helps.希望这可以帮助。 :) :)

var p = {
  "0": "Proxy",
  "2": "Skate",
  "8": "Air"
}
var a = [];
for(var key in p){
 if (p.hasOwnProperty(key)) {
   a.push({name: p[key]})
  }

}
console.log(a)

Another way to loop through an object is to use Object.entries method, This method return an array of arrays, each array contain the key and the value另一种遍历对象的方法是使用Object.entries方法,该方法返回一个数组数组,每个数组包含键和值

const fruits = {
  apple: 28,
  orange: 17,
  pear: 54,
}

const entries = Object.entries(fruits)
console.log(entries)
// [
//   [apple, 28],
//   [orange, 17],
//   [pear, 54]
// ]

So, in your case you can try something like this :所以,在你的情况下,你可以尝试这样的事情:

const entries = Object.entries(p);
var a = [];
for (const [key, value] of entries) {

  a.push({name: value})
}

您应该使用处理程序中的参数name

Object.values(this.initialObject).map(name => ({name}));

Try This :尝试这个 :

 var tempPartners=[];
    for (x in partners) {
    var obj=JSON.parse(`{"name":"`+partners[x]+`"}`);
    tempPartners.push(obj);
    }
console.log(tempPartners);

The output will be like输出将像

 0: {name: "Proxy"}
    1: {name: "Skate"}
    2: {name: "Air"}

You can do something like this你可以做这样的事情

var partners = {"Proxy", "Skate","Air" };
var newArray = [];
for(var i = 0; i<=partners.length; i++){
    newArray.push({Name: element[i]});
}
console.log(newArray);

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

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