более или менее сотворил что то похожее на правду
function arraysInCommon(arrays){
var i, common,
L= arrays.length, min= Infinity;
while(L){
if(arrays[--L].length<min){
min= arrays[L].length;
i= L;
}
}
common= arrays.splice(i, 1)[0];
return common.filter(function(itm, indx){
if(common.indexOf(itm)== indx){
return arrays.every(function(arr){
return arr.indexOf(itm)!= -1;
});
}
});
}
var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
var allArrays = [ arr, massiv];
console.log(allArrays);
var matches = arraysInCommon(allArrays).sort();
console.log(matches.toString());
этот код делает все почти так как надо , он выводит мне одинаковые станции , но если обратить внимание массивы введены вручную , а когда я пытаюсь подставить вместе них масивы которые собираюсь со страницы и из базы то ничего не происходит , вот полный код
// собираем и танции метро из строки и преобразовываем в массив
var metro_stations = "[[*svod_metro]]" ;
var metro_massive = metro_stations.split(',');
console.log(metro_massive);
// собираем значения всех инпутов станций метро и преобразовываем в массив
var input_metro = $('.metro_title').text();
var input_metro_massive = input_metro.split(',');
console.log(input_metro_massive);
// сравниваем массивы
function arraysInCommon(arrays){
var i, common,
L= arrays.length, min= Infinity;
while(L){
if(arrays[--L].length<min){
min= arrays[L].length;
i= L;
}
}
common= arrays.splice(i, 1)[0];
return common.filter(function(itm, indx){
if(common.indexOf(itm)== indx){
return arrays.every(function(arr){
return arr.indexOf(itm)!= -1;
});
}
});
}
var arr = ["Улица Академика Янгеля", "Петровско-Разумовская", "Авиамоторная", " "] ;
var massiv = ["Улица Академика Янгеля", "Петровско-Разумовская", "Петровско-Разумовская", "Авиамоторная"];
var allArrays = [ metro_massive, input_metro_massive];
console.log(allArrays);
var matches = arraysInCommon(allArrays).sort();
console.log(matches.toString());