簡體   English   中英

Javascript 在 Object.assign() 函數中重命名對象屬性

[英]Javascript Renaming object properties in Object.assign() function

我正在嘗試創建一個合並兩個對象數組的函數。

const obj = {
sales: [
    {date: '01 FEB 2020', value: 1200},
    {date: '05 FEB 2020', value: 3000},
    {date: '10 FEB 2020', value: 2000},
    {date: '15 FEB 2020', value: 2780},
    {date: '20 FEB 2020', value: 1890},
    {date: '25 FEB 2020', value: 2390},
    {date: '29 FEB 2020', value: 3490},
],
cost: [
    {date: '01 FEB 2020', value: 2000},
    {date: '05 FEB 2020', value: 1200},
    {date: '10 FEB 2020', value: 2800},
    {date: '15 FEB 2020', value: 2280},
    {date: '20 FEB 2020', value: 2000},
    {date: '25 FEB 2020', value: 3000},
    {date: '29 FEB 2020', value: 2490},
]}

由於值屬性相同,我想將其更改為父名稱,例如: sales, cost

下面是我正在嘗試的功能

processDualChartsData( data1, data2, newProp1, newProp2, newProp3, limit ){
    let chartData = data1.map( (item, i) => Object.assign( {}, {newProp1: item.date, newProp2: item.value}, {newProp3: data2[i].value} ) )
    return chartData.slice(0, limit)
}

並使用該函數作為

let barChartData = this.processDualChartsData( sales, cost, 'date', 'visitor', 'profit', 7 )

我期望從中得到回報:

[{date: "01 Feb 2020", sales: 40, cost: 45}, .... ]

但我得到

[{newProp1: "01 Feb 2020", newProp2: 40, newProp3: 45}, {.....}, .....]

我可以管理它嗎?

您需要計算屬性名稱

您可以省略Object.assign並直接使用新對象。

let chartData = data1.map((item, i) => ({
        [newProp1]: item.date,
        [newProp2]: item.value,
        [newProp3]: data2[i].value
    }));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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