簡體   English   中英

根據值將x數據量推送到對象

[英]Push x amount of data to object based on value

我有一個函數,它計算一些東西並返回值。

var c = containsObject("index", x);

假設C = 2;

然后我希望它做這樣的事情:

data.push({
    "date": getdate.toString(),
    "value": x["Index"],
    "value2": x["Index2"]
})

如果C = 8,則類似:

data.push({
    "date": getdate.toString(),
    "value": x["Index"],
    "value2": x["Index2"],
    "value3": x["Index3"],
    "value4": x["Index4"],
    "value5": x["Index5"],
    "value6": x["Index6"],
    "value7": x["Index7"],
    "value8": x["Index8"]
})

x是我從ajax調用中獲得的數據數組

最好的方式是什么?

對屬性使用string-key語法:

var _object={};
for(let i = 0;i<C;i++){
  let Cstr=C.toString();
  _object["value"+Cstr]=x["index"+Cstr];
}
data.push(_object);

您可以使用括號符號來執行此操作。

const c = 3;
const object = {};
for (let i = 1; i <= c; i++) {
    object['value' + i] = x['index' + i];
}

由於已使用TypeScript對此進行了標記,請嘗試使用索引簽名來注釋類型,以擺脫編譯時錯誤。

嘗試這樣的事情:

let data: Array<any>;
let c = 8;

let x: {
    [key: string]: string
};

let obj: {
    [key: string]: string
} = {
        "date": getdate.toString()
    };

for (let i = 0; i < c; i++) {
    obj["value" + c.toString()] = x["index" + c.toString()];
}

暫無
暫無

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

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