У меня есть 3 разных массива, один с именами столбцов таблицы, а другой с данными. Как я могу объединить их для создания одного объекта json в AngularJS?
var keyArray = ["Col1","Col2","Col3",...];
var ValArray1 = ["v1.1","v1.2","v1.3",...];
var ValArray2 = ["v2.1","v2.2","v2.3",...];
Я хочу, чтобы json что-то вроде этого
entries[
{
name: "Col1",
value: "v1.1"
},
{name: "Col2",
value: "v1.2"
},
...,
{name: "Col3",
value: "v2.3"
}
]
это нормально для вас? Вам вообще не нужны угловые.
var addToArray = function(entries, keys, values){
for(var i = 0; i < keys.length; i++){
if(keys[i] && values[i]) {
var obj = {};
obj[keys[i]] = values[i];
entries.push(obj);
}
}
}
var entries = [];
addToArray(entries, keyArray, ValArray1);
addToArray(entries, keyArray, ValArray2);
если вы хотите использовать что-то из углового, вы можете использовать angular.forEach
Это будет смешивать ключи с массивом один, а затем ключи с массивом два.. Я сделал это таким образом, потому что в вашем вопросе неясно указано, когда он должен прекратить использовать массив один и начать использовать массив два (после того, как вы используете все значения в массив два, может быть?)
во всяком случае, для вашей цели я считаю, что ключевым моментом является
obj[keys[i]] = values[i];
Это позволит вам создать имя свойства со строкой в вашем массиве
Как насчет записей = {"Col1": "v1.1", "Col2": "v1.2", "Col3": "v2.3"} Таким образом, вы можете получить к нему доступ как записи [Col1], который равен v1.1