繁体   English   中英

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

[英]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);

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

您可以使用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);

1

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.

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