簡體   English   中英

將對象數組轉換為數組 node.js

[英]Converting an array of objects into an array node.js

我目前有一個對象數組,如下所示。

[
  { desc: '1', qty: '2', amt: '1', index: 0 },
  { desc: '1', qty: '2', amt: '1', index: 1 }
]

我需要把這個對象數組變成類似的東西

[
     ['1','2','1',0 ],
     ['1','2','1',1]
]

有任何想法嗎?

您可以使用.map()Object.values()

map()方法創建一個新數組,其中填充了對調用數組中每個元素調用提供的 function 的結果。

Object.values()方法返回給定對象自身可枚舉屬性值的數組,其順序與for...in循環提供的順序相同。 (唯一的區別是for...in循環也枚舉原型鏈中的屬性。)

嘗試如下:

 const data = [ { desc: '1', qty: '2', amt: '1', index: 0 }, { desc: '1', qty: '2', amt: '1', index: 1 } ] const result = data.map(e => Object.values(e)) console.log(result)

如果保證 object 中屬性的順序,可以使用Array.map()創建一個新數組,並使用Object.values()作為回調:

 const arr = [ { desc: '1', qty: '2', amt: '1', index: 0 }, { desc: '1', qty: '2', amt: '1', index: 1 } ] const result = arr.map(Object.values) console.log(result)

如果對象中屬性的順序可能會發生變化,請使用Array.map() ,然后再次調用Array.map()以按照您指定的順序提取所需的屬性:

 const arr = [ { desc: '1', qty: '2', amt: '1', index: 0 }, { desc: '1', qty: '2', amt: '1', index: 1 } ] const order = ['desc', 'qty', 'amt']; // 'index' removed const result = arr.map(o => order.map(k => o[k])) console.log(result)

const data = [
  { desc: '1', qty: '2', amt: '1', index: 0 },
  { desc: '1', qty: '2', amt: '1', index: 1 }
];

var arr = [];

data.map(function(obj) {
   arr.push(Object.values(obj))
});

console.log(arr) // value gets stored in arr object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM