我有兩個物件,我需要創建一個具有新結構的新陣列,例如:這些是我的物件:
物件1:[{“問題”:“氣候變化”,“總計”:“3.456”}]
物件2:[{“問題”:“氣候變化”,“總計”:“3.567”}]
我需要這個輸出
[{ "x":3.456, "y":3.567 }]
我嘗試使用其中一個陣列創建我需要的陣列...所以我使用了第一個陣列: [{y:3.456}] 并且它有效,現在我需要添加 x 鍵和第二個陣列中的值所以我試過這個:
其中 chardatavalue 是陣列之一(包含“y”鍵和值),arrayforxls2 是另一個,但我的代碼只將 seconf 陣列的最后一個值分配給所有“x”鍵。
var resultnew = chartdatavalue.map(function (el) {
var o = Object.assign({}, el);
for (let i of arrayforxls2) {
o.x = i.Total;
}
return o;
});
chartdatavalue 具有以下結構:
[{
y: '3.893'
}]
arrayxls2 具有以下結構:
[{
"Question":"Climate change",
"Total":"3.567"
}]
我需要這個輸出:
[{ "x":3.567, "y":3.893 }] 你能幫我嗎。
uj5u.com熱心網友回復:
可能你正在尋找這個:
var resultnew = chartdatavalue.map(function (el, i) {
return Object.assign({ x: arrayforxls2[i].Total }, el);
});
這里的變化被認為i是捕獲和使用,從而使第i個從一個陣列物件被合并到我個其他的。
您還可以使用物件傳播語法來代替Object.assign:
var resultnew = chartdatavalue.map((el, i) =>
({ x: arrayforxls2[i].Total, ...el})
);
或者,當el您需要忽略其他屬性時,則使用物件解構:
var resultnew = chartdatavalue.map(({y}, i) =>
({ x: arrayforxls2[i].Total, y})
);
uj5u.com熱心網友回復:
像這樣的東西:
var resultnew = chartdatavalue.map((el, i) => ({x: el.Total, y: arrayforxls2[i].Total}));
這將迭代其中一個陣列,并使用索引i從另一個陣列中的相應物件中獲取值。
使用沒有意義,Object.assign()因為結果物件不包含輸入物件的任何屬性名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377990.html
標籤:javascript 数组 目的
