[英]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.