name
является результатом splice
в массиве, что означает, что это массив, но вы заполнили d
строками, поэтому d.includes(name)
ищет вновь созданный массив внутри массива струн. Никакой массив никогда не будет равен строке (без преобразования, которое не выполняется includes
).
Если вы имели в виду name
как запись, которую вы удалили из массива с помощью splice
(поскольку он возвращает массив удаленных записей), вам нужно будет использовать [0]
в конце, чтобы получить его:
name = input.split('\n').splice(m+1,1)[0];
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^
Я не просматривал код для поиска других проблем, но это будет по крайней мере, ищите строку в массиве строк, а не ищите массив в массиве строк.
Боковое примечание: похоже, вы полагаетесь на получение ошибки, чтобы остановить ваш l oop, но имейте в виду, что доступ за пределы массива не является ошибкой в JavaScript, вы просто получаете значение undefined
.