[英]Combine values from an array of objects on the basis of key name
const input = [{car: 'BMW'}, {car: 'Benz'}, {bike: 'KTM'}, {bike: 'Honda'}]
const output = {汽車:['寶馬','奔馳'],自行車:['KTM','本田']}
這可能嗎?
group by 問題可以使用reduce
來解決。 這里我假設輸入數組中的每個元素只有 1 個鍵值對
const input = [{car: 'BMW' }, {car: 'Benz'}, {bike: 'KTM'}, {bike: 'Honda'}] const output = input.reduce((acc,curr)=>{ const [k,v] = Object.entries(curr)[0] acc[k] = acc[k] || [] acc[k].push(v) return acc },{}) console.log(output)
這非常簡單 - 遍歷對象數組,檢查鍵是否存在於 output object 如果不存在 - 使用值創建鍵 - 數組並推送值,否則只需將值推送到現有鍵。
const input = [{car: 'BMW' }, {car: 'Benz'}, {bike: 'KTM'}, {bike: 'Honda'}]
let output = {};
for(let i = 0 ; i < input.length ; i++){
const key = Object.keys(input[i])[0];
if(!output[key]){
output[key] = [input[i][key]];
}else{
output[key].push(input[i][key])
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.