[英]How to convert object containing Objects into array of objects
这是我的 Object
var data = {
a:{"0": "1"},
b:{"1": "2"},
c:{"2": "3"},
d:{"3": "4"}
};
这是我期望的 output
data = [
{"0": "1"},
{"1": "2"},
{"2": "3"},
{"3": "4"}
]
这对我有用
var newArrayDataOfOjbect = Object.values(data)
此外,如果您有键值 object 尝试:
const objOfObjs = {
"one": {"id": 3},
"two": {"id": 4},
};
const arrayOfObj = Object.entries(objOfObjs).map((e) => ( { [e[0]]: e[1] } ));
将返回:
[
{
"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];
})
这对我有用
接受的答案没有考虑到 OP 想要摆脱密钥。 这仅返回对象,而不是它们的父键。
Object.entries(ObjOfObjs).map(e => e[1])
输出:
[
{"0": "1"},
{"1": "2"},
{"2": "3"},
{"3": "4"}
]
您必须为 object 中的每个值命名。
一旦你修复了第一个 object,你就可以使用 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);
您可以使用Object.values()
function 轻松做到这一点
var data = { a:{"0": "1"}, b:{"1": "2"}, c:{"2": "3"}, d:{"3": "4"} }; console.log(Object.values(data))
这很简单,并且将以不可变的方式进行,这样您的主要数据就不会被触及,但您可以根据您的要求创建一个新的 mappedData 并创建一个新数组。
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]);
}
}
我得到你想要的,这是你的解决方案
var dataObject=[{name:'SrNo',type:'number'}];
并访问或存储数组使用
dataObject[0].srno=1;
dataObject[0].srno=2;
希望这是你需要的。
这对我有用。 它似乎得到了很好的支持。
toArray(obj_obj) {
return Object.keys(obj_obj).map(i => obj_obj[i]);
}
https://medium.com/chrisburgin/javascript-converting-an-object-to-an-array-94b030a1604c
最后,当您从 object 值
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 👋👋👋👋",
senderId: "tQusPaBhoJXcu2ezlsDxQMUTLCq1",
timestamp: "Wed Jun 8 18:16:50 2022"
},
d: {
message: "Hello 👋👋👋👋",
senderId: "tQusPaBhoJXcu2ezlsDxQMUTLCq1",
timestamp: "Wed Jun 8 18:16:50 2022"
}
};
const mappedDataArray = [];
slno=1
for (const key in snapshortObject) {
const mappedData = {
...snapshortObject[key],
slno:slno++
};
mappedDataArray.push(mappedData);
}
console.log(mappedDataArray);
We can use Object default methods ( Object.assign(), Object.values() ) to convert Object of Object to array in the following way
const ObjValue = { a:{"0": "1"}, b:{"1": "2"}, c:{"2": "3"}, d:{"3": "4"} } const ObjtoArray = (obj) => Object.assign([], Object.values(obj)) console.log(ObjtoArray(ObjValue))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.