如何仅以特定格式在数组中添加动态键?

时间:2016-07-20 21:44:05

标签: javascript angularjs

我有一个数组 - var array = [];

我们需要按照以下指定的特定格式推送键值对:

array.push({

'id' : 21,
'name': 22,
<dynamic key name> : key value

});

如您所见,第三个键是动态名称,仅在运行时才知道。限制是使用这种格式。我们怎么做到这一点?

我正在使用特定的angularjs插件,我需要数组只有这种格式。

注意说

array[<dynamic key>] = value 

无效

2 个答案:

答案 0 :(得分:3)

使用es6可以通过以下方式完成

array.push({
  id:5,
  name:'John',
  [dynamicVar.name]: dynamicVar.value 
})

使用es5分两个阶段进行实例化

var data = {
   id:5,
   name:'John'
}

data[dynamicVar.name] = dynamicVar.value;
array.push(data)

答案 1 :(得分:0)

input { width:50px; }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app ng-init="id=1; name='name1'; result=[]">
  <table>
    <tr><th>Key<th>Value
    <tr><td>Id:<td><input ng-model="id" />
    <tr><td>name:<td><input ng-model="name" />
    <tr><td><input ng-model="key" />:<td><input ng-model="value" />
  </table>
  <button ng-click="result.push({id:id,name:name}); result[result.length-1][key]=value">Push</button>
  <pre>
  {{ result | json }}
  </pre>
</body>