我有一个数组 - var array = [];
我们需要按照以下指定的特定格式推送键值对:
array.push({
'id' : 21,
'name': 22,
<dynamic key name> : key value
});
如您所见,第三个键是动态名称,仅在运行时才知道。限制是使用这种格式。我们怎么做到这一点?
我正在使用特定的angularjs插件,我需要数组只有这种格式。
注意说
array[<dynamic key>] = value
无效
答案 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>