我有一个能够计算某些东西并返回值的函数。
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调用中获取的数据数组
最好的办法是什么?
答案 0 :(得分:0)
对属性使用string-key
语法:
var _object={};
for(let i = 0;i<C;i++){
let Cstr=C.toString();
_object["value"+Cstr]=x["index"+Cstr];
}
data.push(_object);
答案 1 :(得分:0)
您可以使用括号表示法来执行此操作。
const c = 3;
const object = {};
for (let i = 1; i <= c; i++) {
object['value' + i] = x['index' + i];
}
答案 2 :(得分:0)
由于您已使用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()];
}