0

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

例如,我有“:

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;
4

3 回答 3

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 核心 api 中没有测试方法):

 var somethingToAdd = "newKey";
 testArray[0][somethingToAdd] = "1";

结果:

[{
  headerTest: "val1"
  newKey: "1"
  test1: "val2"
}]
于 2013-10-19T16:17:12.850 回答
-1

这个怎么样:

testArray[0].(testProperty) = testResults;

或者

testArray[0].[testProperty + ''] = testResults;
于 2013-10-19T15:10:50.007 回答
-1

您需要先创建一个新对象,因为您无法设置未定义元素的属性。

testArray[0] = new Object();
testArray[0][testProperty] = testResults;
于 2013-10-19T15:25:46.073 回答