2015-03-03 4 views
-3

У меня есть один массив с объектами в нем. Скажите:Сравнение объектов внутри массива JavaScript

[{id: 0, fight: true}, {id: 1, fight: false}, {id: 2, fight: true}, {id: 3, fight: false}, {id: 4, fight: true}, {id: 5, fight: false}, {id: 6, fight: false}, {id: 7, fight: false}] 

Я хочу взять каждые два объекта внутри массива с одинаковым значением (например, object.fight). Затем я хочу передать эти объекты в функцию, где я могу делать с ними другие вещи. Я хочу быть уверенным, что как только элемент массива будет сравниваться, он не будет сравниваться снова. В этом случае я бы получил первый и третий объекты, переданные в мою функцию. Как я могу это сделать?

+0

Можете ли вы объяснить на примере? – thefourtheye

+0

Это не правильный синтаксис для свойств объекта. «Key: value», а не 'key = value'. – Barmar

+0

@thefourtheye сделано – Bluedog111

ответ

1

Я думаю, вам просто нужно вложенные for петли:

for (var i = 0; i < array.length; i++) { 
    for (var j = i+1; j < array.length; j++) { 
     func(array[i], array[j]); 
    } 
} 

Запуск внутреннего цикла в i+1 предотвращает вызов функции с одной и той же пары элементов в другом порядке.