@capitals

Как сравнить массивы с запятой в индексе и вывести количество совпадений?

Всем привет.

У меня есть два кода.

Первый
let masterArray = [['1981', '2001,2002', '1991', '1985,1986,1987'], ['1988', '2000,2002', '1991', '1987,1986,1992'],  ['1991', '2003,2002', '1971', '1986,1985,2000']];

let compareArray = ['1981', '2002', '1891', '1985,1987'];

let result = [];
compareArray.forEach((v, k) => { 
  let i = 0; 
  masterArray[k].split(',').forEach((vv, kk) => {
    v.split(',').indexOf(vv) !== -1 ? i++ : false
  }); 
  result.push(`${k} - [${i}]`) 
});
console.log(result);


И второй код
const years = [['1981', '2001,2002', '1991', '1985,1986,1987'], ['1988', '2000,2002', '1991', '1987,1986,1992'], ['1991', '2003,2002', '1971', '1986,1985,2000']]
                   
const year = ['1981', '2002', '1891', '1985,1987'];

let results = years.map(items => items.filter((item, i)=>item === year[i]))

console.log(results);


Суть в том, что первый код работает как мне нужно, за исключением; 1ое - Не работает со множествами массивами (как второй). 2ое - Не показывает количество совпадений (как во втором).

Подскажите пожалуйста, как это исправить? а то я уже голову поломал.
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
kinglostov
@kinglostov
просто lostov
Смешной но рабочий код:
const years = [['1981', '2001,2002', '1991', '1985,1986,1987'], ['1988', '2000,2002', '1991', '1987,1986,1992'], ['1991', '2003,2002', '1971', '1986,1985,2000']]
                   
const year = ['1981', '2002', '1891', '1985,1987'];
let free = [], matches = [], match = [];
for(var g=0;g<year.length;g++){
	free = year[g].split(',');
	for(var f=0;f<free.length;f++){
		for(var i=0;i<years.length;i++){
			for(var n=0;n<years[i].length;n++){
				match = years[i][n].split(',');
				for(var y=0;y<match.length;y++){
				if(match[y]==free[f])matches.push("in " + i + " on " + n + " is from " + g + " on " + f + " " + free[f]);
				}}}}}
				console.log(matches);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы