我想將兩個不同陣列中的第一項合并為一個。
var arr = [];
var arr2 = [];
var year = ["January 2022", "February 2022", "March 2022", "April 2022", "May 2022"];
var value = [600000, 900000, 180000, 600000, 300000];
year.forEach(element => {
arr.push({year: element});
});
value.forEach(element2 => {
arr2.push({value: element2});
});
我試圖達到的結果是這樣的:
[
{
year: "January 2022",
value: 600000
}, {
year: "February 2022",
value: 900000
}, {
year: "March 2022",
value: 180000
}, {
year: "April 2022",
value: 600000
}, {
year: "May 2022",
value: 300000
}
];
所以這是我嘗試過的,但我還沒有得到預期的結果:
var merged = arr.concat(arr2);
var newData = [];
merged.forEach(element => {
newData.push({year: element.year, value: element.value});
});
console.log(newData);
uj5u.com熱心網友回復:
您可以獲取帶有所需鍵的物件并映射值以獲取物件陣列。
這種方法適用于無限數量的屬性。
const
getObjects = object => Object.entries(object).reduce((r, [k, a]) => a.map((v, i) => ({ ...r[i], [k]: v })), {}),
year = ["January 2022", "February 2022", "March 2022", "April 2022", "May 2022"],
value = [600000, 900000, 180000, 600000, 300000],
result = getObjects({ year, value });
console.log(result);
uj5u.com熱心網友回復:
與您的邏輯保持一致,我提出以下建議:
var years = ["January 2022", "February 2022", "March 2022", "April 2022", "May 2022"];
var values = [600000, 900000, 180000, 600000, 300000];
function merger(years, values){
if (years.length != values.length){
console.log("Dog");
}else {
let merged = [];
for(i=0; i < years.length; i ){
merged[i] = {year: years[i], value: values[i]};
}
return merged;
}
}
console.log(merger(years, values));
有用!
uj5u.com熱心網友回復:
如果 year 陣列和 value 陣列具有相同的長度和相同的位置,這將起作用:
var year = ["January 2022", "February 2022", "March 2022", "April 2022", "May 2022"];
var value = [600000, 900000, 180000, 600000, 300000];
var result = [];
year.forEach((year, i) => result.push({year, value: value[i]}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/471405.html
標籤:javascript 数组 目的 合并
