5 回答

TA貢獻(xiàn)1847條經(jīng)驗 獲得超7個贊
您可以使用 Array.map
循環(huán)訪問數(shù)組,創(chuàng)建一個將鍵設(shè)置為 from 值的對象,并使用 Object.assign
為數(shù)組中的其他條目添加空值:subGrps
Subgroup
subGrps
keys
var keys = ["Subgroup", "0-3", "3-10", "11-40"];
var subGrps = ["SP_20k", "SP_40k", "SP_60k"];
var arrayOfObjects = subGrps.map(v => Object.assign({
"Subgroup": v
},
...keys.slice(1).map(k => ({
[k]: ""
}))
));
console.log(arrayOfObjects);
展開代碼段
這可以簡化為:
var keys = ["Subgroup", "0-3", "3-10", "11-40"];
var subGrps = ["SP_20k", "SP_40k", "SP_60k"];
var arrayOfObjects = subGrps.map(v => Object.assign({},
...keys.map(k => ({
[k]: k == 'Subgroup' ? v : ""
}))
));
console.log(arrayOfObjects);

TA貢獻(xiàn)1851條經(jīng)驗 獲得超3個贊
您可以先創(chuàng)建對象,然后在循環(huán)中添加鍵。
var keys = ["Subgroup", "0-3", "3-10", "11-40"];
var subGrps = ["SP_20k", "SP_40k", "SP_60k"];
// creates the object with keys once
// you can also use foreach to create this keysObj too.
var keysObj = keys.reduce((resObj, acc) => {
resObj[acc] = ''
return resObj
}, {})
// uses keysObj to generate array of objects
var arrayOfObjects = subGrps.map(subGrp => ({...keysObj, Subgroup: subGrp}))
console.log(arrayOfObjects)

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊
如果你想特別對待它,我不知道為什么與其他鍵混在一起,但在這里你去:"Subgroup"
const [sgKey, ...keys] = ["Subgroup", "0-3", "3-10", "11-40"];
const subGrps = ["SP_20k", "SP_40k", "SP_60k"];
const result = subGrps.map(sg => {
const obj = {
[sgKey]: sg
}
for (const k of keys) {
obj[k] = ''
}
return obj
});
console.log(result)

TA貢獻(xiàn)1820條經(jīng)驗 獲得超9個贊
您需要執(zhí)行以下操作:
var keys = ["Subgroup", "0-3", "3-10", "11-40"];
var subGrps = ["SP_20k", "SP_40k", "SP_60k"];
var arrayOfObjects = [];
subGrps.forEach(function(id) {
var obj = {}
keys.forEach(function(item) {
if (item === "Subgroup") {
obj[item]= id
arrayOfObjects.push(obj);
} else {
obj[item] = ""
arrayOfObjects.push(obj);
}
});
});
console.log(arrayOfObjects);

TA貢獻(xiàn)1847條經(jīng)驗 獲得超11個贊
試試這個,
const arr = [];
subGrps.forEach(subGrp => {
const obj = {}
keys.forEach(key => obj[key] = (key === 'Subgroup') ? subGrp : '' );
arr.push(obj);
})
console.log(arr)
添加回答
舉報