如何将包含对象的对象转换为对象数组

时间:2014-11-07 06:47:55

标签: javascript lodash

这是我的对象

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

这是我期望的输出

data = [ 
    {"0": "1"},
    {"1": "2"},
    {"2": "3"},
    {"3": "4"}
]

9 个答案:

答案 0 :(得分:43)

这对我有用

var newArrayDataOfOjbect = Object.values(data)

答案 1 :(得分:15)

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

var myData = Object.keys(data).map(key => {
    return data[key];
})

这对我有用

答案 2 :(得分:3)

您必须为对象中的每个值指定一个名称。

修复第一个对象后,可以使用push执行此操作。

var data = {
    1: {"0": "1"},
    2: {"1": "2"},
    3 : {"2": "3"},
    4: {"3": "4"}
};

var ar = [];
for(item in data){
    ar.push(data[item]);
 }

console.log(ar);

http://jsfiddle.net/nhmaggiej/uobrfke6/

答案 3 :(得分:0)

var array = [];
for(var item in data){
    // this condition is required to prevent moving forward to prototype chain
    if(data.hasOwnProperty(item)){
        array.push(data[item]);
    } 
}

答案 4 :(得分:0)

我得到你想要的!这是你的解决方案,

var dataObject=[{name:'SrNo',type:'number'}];

要访问或存储数组,请使用

dataObject[0].srno=1;
dataObject[0].srno=2;

希望这就是你所需要的。

答案 5 :(得分:0)

这对我有用。而且似乎得到了很好的支持。

proc=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
while True:
        line = proc.stdout.readline()
        if (line==''):
            break
        print line; #doing something with the line and notifying progress

https://medium.com/chrisburgin/javascript-converting-an-object-to-an-array-94b030a1604c

答案 6 :(得分:0)

接受的答案未考虑OP想要删除键的问题。这仅返回对象,而不返回其父键。

Object.entries(ObjOfObjs).map(e => e[1])输出:

[ 
  {"0": "1"},
  {"1": "2"},
  {"2": "3"},
  {"3": "4"}
]

答案 7 :(得分:0)

这很简单,并且会以不可变的方式进行,这样您的主要数据就不会被触及,但您可以根据需要创建一个新的映射数据并创建一个新数组。

let data = {
  a: { "0": "1" },
  b: { "1": "2" },
  c: { "2": "3" },
  d: { "3": "4" }
};

const mappedDataArray = [];

for (const key in data) {
  const mappedData = {
    ...data[key]
  };
  mappedDataArray.push(mappedData);
}

console.log(mappedDataArray);
console.log(data);

答案 8 :(得分:0)

您可以使用 Object.values() 函数轻松完成此操作

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

console.log(Object.values(data))