亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將鍵值對映射到對象中的每個索引

如何將鍵值對映射到對象中的每個索引

一只斗牛犬 2022-06-16 17:27:49
我正在嘗試使用 map 向我的對象添加一個新的鍵和值對。該值只是一個空數組,因此我可以稍后將對象推入其中。這是我的代碼:let columns = [    {        _id: "5e8af4591c9d440000a1a4ed",        column_name: "Opportunities",        column_value: 0,        column_percentage: 0.25    },    {        _id: "5e8af4a81c9d440000a1a4ee",        column_name: "Prospects",        column_value: 0,        column_percentage: 0.5    }];let output = columns.map(() => ({posts: []}));console.log(output)這是我希望我的對象在映射后的樣子:let columns = [    {        _id: "5e8af4591c9d440000a1a4ed",        column_name: "Opportunities",        column_value: 0,        column_percentage: 0.25,        posts: []    },    {        _id: "5e8af4a81c9d440000a1a4ee",        column_name: "Prospects",        column_value: 0,        column_percentage: 0.5,        posts: []    }];但目前的輸出是:[    {        posts: []    },    {        posts: []    }]
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

您的代碼不起作用,因為新數組將包含映射器函數返回的內容。


即使它與原始數組的內容無關,它也會保持其返回值不變。


因此,如果您返回一個 object {posts:[]},它將是輸出。


您必須將該對象合并到映射器函數內的當前數組元素中。


您可以使用對象擴展語法來合并兩個對象:


let columns = [

    {

        _id: "5e8af4591c9d440000a1a4ed",

        column_name: "Opportunities",

        column_value: 0,

        column_percentage: 0.25

    },

    {

        _id: "5e8af4a81c9d440000a1a4ee",

        column_name: "Prospects",

        column_value: 0,

        column_percentage: 0.5

    }

];


columns.map(obj => ({...obj, posts: []}));

但是,這是一個相對較新的功能,因此,如果您需要更大的支持,您可以使用Object.assign:


let columns = [

    {

        _id: "5e8af4591c9d440000a1a4ed",

        column_name: "Opportunities",

        column_value: 0,

        column_percentage: 0.25

    },

    {

        _id: "5e8af4a81c9d440000a1a4ee",

        column_name: "Prospects",

        column_value: 0,

        column_percentage: 0.5

    }

];


columns.map(obj => Object.assign({posts: []}, obj));


查看完整回答
反對 回復 2022-06-16
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你可以試試:

let newColumns = columns.map((item) => Object.assign({}, item, {posts: []});  
console.log(newColumns);


查看完整回答
反對 回復 2022-06-16
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

使用forEach();

columns.forEach(el => el.posts=[] )

let columns = [

    {

        _id: "5e8af4591c9d440000a1a4ed",

        column_name: "Opportunities",

        column_value: 0,

        column_percentage: 0.25

    },

    {

        _id: "5e8af4a81c9d440000a1a4ee",

        column_name: "Prospects",

        column_value: 0,

        column_percentage: 0.5

    }

];

columns.forEach(el => el.posts=[] )


console.log(columns)


查看完整回答
反對 回復 2022-06-16
  • 3 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號