如何为数组中的键值对声明和赋值

时间:2016-12-09 05:31:56

标签: javascript angularjs arrays object

我声明并按以下方式将值赋给数组,但它在此行中表示错误attributes.categoryKey:'2051'意外令牌'。'。有人可以帮助我。谢谢。

  var arr2 = [ {'attributes': {'categoryKey': '' },'value': '' } ]
         $.each(value, function (i, v) {
         arr2.push({ attributes.categoryKey: '2051', 'value': v.name });

2 个答案:

答案 0 :(得分:1)

你不能直接这样做

 arr2.push({ attributes.categoryKey: '2051', 'value': v.name }); 

因为这里属性尚未定义所以.categoryKey无效,因此您需要将其定义为对象的进一步属性,而不是最初

需要如下:

 var arr2 = [ {'attributes': {'categoryKey': '' },'value': '' } ]
 var value = [{name:"name1"}]       
 $.each(value, function (i, v) {
     arr2.push({ attributes: {categoryKey: '2051'}, 'value': v.name });
 })
 console.log(arr2);

请参阅此小提琴https://jsfiddle.net/7ggcjjh7/

答案 1 :(得分:0)

您使用了错误的语法:

var object = {key:' value'};

密钥必须清楚,我们不能在其中使用某种表达。

但我建议通过这个:

var a = {'value': v.name };
a[attributes.categoryKey] = '2051';

最后:

arr2.push(a);