admin管理员组文章数量:1134248
This is my Object
var data = {
a:{"0": "1"},
b:{"1": "2"},
c:{"2": "3"},
d:{"3": "4"}
};
This is the output that I expect
data = [
{"0": "1"},
{"1": "2"},
{"2": "3"},
{"3": "4"}
]
This is my Object
var data = {
a:{"0": "1"},
b:{"1": "2"},
c:{"2": "3"},
d:{"3": "4"}
};
This is the output that I expect
data = [
{"0": "1"},
{"1": "2"},
{"2": "3"},
{"3": "4"}
]
Share
Improve this question
edited Nov 7, 2014 at 6:53
Nick Div
asked Nov 7, 2014 at 6:47
Nick DivNick Div
5,61815 gold badges73 silver badges135 bronze badges
3
- Then see my comment about the target structure. It's a bad output format and a pain to use in javascript. Why not just put all key/value pairs in a single object? – jfriend00 Commented Nov 7, 2014 at 6:54
- 1 I am using a third party library in my application that needs the input in the format that i want. cant help it. – Nick Div Commented Nov 7, 2014 at 6:55
- 2 Wow, these comments make my head hurt. How is an array of objects "a pain to use in javascript"? Granted the objects are normally all the same structure, but we use arrays of objects all the time, quite painlessly. – iGanja Commented Oct 31, 2017 at 17:07
12 Answers
Reset to default 142This works for me
var newArrayDataOfOjbect = Object.values(data)
In additional if you have key - value object try:
const objOfObjs = {
"one": {"id": 3},
"two": {"id": 4},
};
const arrayOfObj = Object.entries(objOfObjs).map((e) => ( { [e[0]]: e[1] } ));
will return:
[
{
"one": {
"id": 3
}
},
{
"two": {
"id": 4
}
}
]
var data = {
a:{"0": "1"},
b:{"1": "2"},
c:{"2": "3"},
d:{"3": "4"}
};
var myData = Object.keys(data).map(key => {
return data[key];
})
This works for me
The accepted answer doesn't take into account the OP wanted to get rid of the keys. This returns only the objects, not their parent key.
Object.entries(ObjOfObjs).map(e => e[1])
outputs:
[
{"0": "1"},
{"1": "2"},
{"2": "3"},
{"3": "4"}
]
You can easily do this by using Object.values()
function
var data = {
a:{"0": "1"},
b:{"1": "2"},
c:{"2": "3"},
d:{"3": "4"}
};
console.log(Object.values(data))
You would have to give a name to each value in the object.
Once you fix the first object, then you can do it using 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/
this is simple and will do in an immutable way so that your main data not touched but you can create a new mappedData as per your requirement and create a new array.
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);
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]);
}
}
Finally, It works for me to convert from object to array of objects when you get object value from
const snapshortObject = snapshot.val(); // And they look like this are stored value.
let snapshortObject = {
a: {
message: "Hiiii",
senderId: "tQusPaBhoJXcu2ezlsDxQMUTLCq1",
timestamp: "Wed Jun 8 18:16:18 2022"
},
b: {
message: "Hiiii",
senderId: "tQusPaBhoJXcu2ezlsDxQMUTLCq1",
timestamp: "Wed Jun 8 18:16:18 2022"
},
c: {
message: "Hello
本文标签:
javascriptHow to convert object containing Objects into array of objectsStack Overflow
版权声明:本文标题:javascript - How to convert object containing Objects into array of objects - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人,
转载请联系作者并注明出处:http://www.betaflare.com/web/1736795786a1953281.html,
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论