2016-07-20 5 views
1

Ich habe ein Array - var array = [];Wie können Sie dynamische Schlüssel in einem Array nur in einem bestimmten Format hinzufügen?

Wir müssen in einem bestimmten Format Schlüsselwertepaare drücken, wie unten angegeben:

array.push({ 

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

}); 

Wie Sie sehen können, der dritte Schlüssel ein dynamischer Namen und wird nur während der Laufzeit bekannt sein. Die Einschränkung besteht darin, dieses Format zu verwenden. Wie können wir das tun?

Ich verwende ein spezifisches Angularjs-Plugin und ich brauche das Array nur in diesem Format.

Beachten Sie, dass sagen

array[<dynamic key>] = value 

nicht

hilft
+0

Sie tun es einfach. Was ist das Problem? Fragen Sie, wie Sie herausfinden können, was der dynamische Schlüssel ist, nachdem er dem Array hinzugefügt wurde? – Malk

+0

Benötigt mehr Informationen. Wie erhalten Sie die Informationen zur Laufzeit? Was hindert Sie daran, ': Schlüsselwert' zu setzen, wenn Sie sie zurückbekommen? – dlsso

Antwort

3

mit es6 kann dies auf folgende Weise

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

mit ES5 tun die Instanziierung in zwei Phasen

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

data[dynamicVar.name] = dynamicVar.value; 
array.push(data) 
erfolgen
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>

Verwandte Themen