Вернуть ВСЕ массив пересечений JavaScript
Мой текущий код:
function intersect(first, second) {
var temp = [];
for(var i = 0; i < first.length; i++){
for(var k = 0; k < second.length; k++){
if(first[i] == second[k]){
temp.push( first[i]);
break;
}
}
}
return temp;
}
Как я могу изменить это так, чтобы он возвращал ВСЕ индексы пересечений?
2 ответа
Решение
Вам нужно добавить индексы к вашему результату;
function intersect(first, second) {
var temp = [];
for(var i = 0; i < first.length; i++){
for(var k = 0; k < second.length; k++){
if(first[i] == second[k]){
temp.push([i, k]); // push i and k as an array
}
}
}
return temp;
}
Также удалите break;
если вы хотите, чтобы также были выбраны повторяющиеся точные пересечения.
Найдите работающий пример здесь: http://jsfiddle.net/0tL9sk5w/1
Все, что вам нужно сделать, это нажать два индекса в виде массива
вместо:
temp.push( first[i]);
вам нужно сделать это:
temp.push([i,k]);