Прямого пути нет, но вы можете написать логику для получения комбинированного объекта, подобного этому.Поскольку "apple, red, banana ...." - все строки, они должны быть заключены в одинарные или двойные кавычки.
Если вы можете сопоставить конфигурационный массив COLORS и FRUITS, добавив нулевые значениядля пропущенных предметов вы можете использовать этот подход.
Работа демо
var colors = {"COLORS":[[1,'red'],[2,'yellow'],[3,'orange']]}
var fruits = {"FRUITS":[[1,'apple'],[2,'banana'],[3,'orange']]}
var newFruits = {"NEW_FRUITS": [] }
//Just to make sure both arrays are the same size, otherwise the logic will break
if(colors.COLORS.length == fruits.FRUITS.length){
var temp;
$.each(fruits.FRUITS, function(i){
temp = this;
temp.push(colors.COLORS[i][2]);
newFruits.NEW_FRUITS.push(temp);
});
}
В качестве альтернативы, если вы можете создать colors
и fruits
конфиги в виде массива объектов, вместо массива массивов, вы можете попробовать это решение.Последовательность элементов здесь не имеет значения, но размер массива все равно должен совпадать.
Рабочая демо
var colors = {"COLORS":[ {"1": 'red'}, { "2": 'yellow'}, {"3":'orange'}]}
var fruits = {"FRUITS":[ {"1":'apple'}, { "2": 'banana'}, {"3":'orange'}]}
var newFruits = {"NEW_FRUITS": [] }
if(colors.COLORS.length == fruits.FRUITS.length){
var temp, first;
$.each(fruits.FRUITS, function(i){
for(first in this)break;
temp = {};
temp[first] = [];
temp[first].push(this[first]);
temp[first].push(colors.COLORS[i][first]);
newFruits.NEW_FRUITS.push(temp);
});
}