如何使用javascript的变量名在数组中添加对象属性?

时间:2013-10-19 14:52:42

标签: javascript

我如何使用变量名称在数组中添加对象属性?

例如,我有“:

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;

3 个答案:

答案 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;