我如何使用变量名称在数组中添加对象属性?
例如,我有“:
var testArray = [];
var test1 = {
headerTest: results,
test1: test1Results
};
// add to test array
testArray.push(test1);
现在我需要向testArray [0]添加另一个对象属性,而是使用变量名称;
// I tried these options but not working....
var testProperty = $.trim($('#testProperty').test()); // single word
testArray[0][testProperty] = testResults;
testArray[0].testProperty = testResults;
答案 0 :(得分:0)
考虑你的数组和对象:
//array
var testArray = [];
var test1 = {
headerTest: "val1",
test1: "val2"
};
您可以使用jQuery $ .extend函数扩展当前对象test1,并使用您动态创建的另一个对象,例如:
var newKey = "someNewKey";
var obj = {};
var newVal = "someValue";
obj[newKey] = newVal;
$.extend(testArray[0], obj);
结果:
[{
headerTest: "val1"
someNewKey: "someValue",
test1: "val2"
}]
你建议的第一种方法应该可以正常工作(如果没有,请检查你的代码,例如jQuery core api中没有测试方法):
var somethingToAdd = "newKey";
testArray[0][somethingToAdd] = "1";
结果:
[{
headerTest: "val1"
newKey: "1"
test1: "val2"
}]
答案 1 :(得分:-1)
这个怎么样:
testArray[0].(testProperty) = testResults;
或
testArray[0].[testProperty + ''] = testResults;
答案 2 :(得分:-1)
您首先需要创建一个新对象,因为您无法设置未定义元素的属性。
testArray[0] = new Object();
testArray[0][testProperty] = testResults;