簡體   English   中英

根據鍵名組合對象數組中的值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM