2015-12-06 2 views
0

Мне нужно объединить несколько ассоциативных массивов в моей JavaScript, например, как показано ниже:Соответствие динамически созданных ассоциативных массивов?

array1 = [{model: 1995}, {type: "automatic"}] 

array2 = [{model: 2002}, {type: "automatic"}] 

array3 = [{model: 1995}, {type: "automatic"}] 

array4 = [{model: 2002}, {type: "automatic"}] 

Мне нужно сцепить массив, только если «модель» значения совпадают, так array1.concat (array3) .. Однако эти значения создаются динамически, и мне нужен способ их сопоставления.

Ive пытался:

if (array1[0].model === array2[0].model) { 
    concatenated = array1.concat(array2) } 

Однако это не перебирать все массивы, чтобы найти спички, он просто соответствует первые два массива он идентифицирует как имеющие ту же модель?

ответ

0

Это то, что вы пытаетесь сделать?

var array1 = [{model: 1995}, {type: "automatic"}]; 

var array2 = [{model: 2002}, {type: "automatic"}]; 

var array3 = [{model: 1995}, {type: "automatic"}]; 

var array4 = [{model: 2002}, {type: "automatic"}]; 

var all = [array1, array2, array3, array4]; 

var model1995 = all.filter(function(array) { 
    return array[0].model === 1995; 
}); 

var model2002 = all.filter(function(array) { 
    return array[0].model === 2002; 
}); 
Смежные вопросы