簡體   English   中英

用JavaScript創建帶有對象的新數組數組

[英]Create new array of array with objects that have objects inside, javascript

我有看起來像這樣的對象數組

var array = [
{car : {id:123}, count: 2, rule: {id:55, color: "red"}},
{car : {id:456}, count: 5, rule: {id:15, color: "blue"}},
{car : {id:883}, count: 1, rule: {id:557, color: "green"}}
...
];

Array是對象的數組,car是具有id的對象,rule是具有id和color的對象。

我想遍歷數組並創建看起來像這樣的新數組

var newArray = [
{carId : 123, count:2, ruleId:55},
{carId : 456, count:5, ruleId:15},
{carId : 883, count:1, ruleId:557}
]

所以我想從對象數組對象內部的對象中提取值。

如果可能的話,我想使用Array.map或Array.forEach在ES5或ES6中做到這一點。

您可以通過map()創建一個新數組來完成此操作,然后在每個迭代中使用當前對象的屬性在其中創建一個新對象。

 var array = [{ car: { id: 123 }, count: 2, rule: { id: 55, color: "red" } }, { car: { id: 456 }, count: 5, rule: { id: 15, color: "blue" } }, { car: { id: 883 }, count: 1, rule: { id: 557, color: "green" } }]; var newArray = array.map(function(obj) { return { carId: obj['car']['id'], count: obj['count'], ruleId: obj['rule']['id'] }; }); console.log(newArray); 

有了地圖,您將輕松獲得您所期望的:

 var array = [ {car : {id:123}, count: 2, rule: {id:55, color: "red"}}, {car : {id:456}, count: 5, rule: {id:15, color: "blue"}}, {car : {id:883}, count: 1, rule: {id:557, color: "green"}} ]; var newArray = array.map(x => ({carId: x.car.id, count: x.count, ruleId: x.rule.id})) ; console.log(newArray); 

暫無
暫無

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

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