Cloud47
@Cloud47
Frontend, javascript, HTML, CSS

Как остановить метод filter при первом несоответствии условию?

Здравствуйте.
Как остановить метод filter в данном коде?
{
var arr1 = ['Капиуcта', 'Капитcл'];
var startingSubstring = function startingSubstring(arr) {

  return arr.reduce(function (a, c, i) {
    return a.filter(function (e, i) {
         return e === c[i];
    });
  }, arr[0].split('') ).join('');
};
startingSubstring(arr1)
}

Функция startingSubstring(arr) возвращает общую начальную подстроку в массиве строк. В данном примере возвращается "Капиc", хотя по заданию должно возвращать "Капи", т.к. 6-я подстрока в обеих строках совпадает.
P.S. Интересует решение без замены текущих методов и пр. либо минимальная замена.
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
А не нужно его останавливать. Сделайте findIndex буквы которая НЕ совпадает, и обрежьте по этому индексу строку.
Ответ написан
@Che603000
c 2011 javascript
const arr1 = ['Капиуcта', 'Капитcл'];
const startingSubstring = (arr) => {
    const charts = arr[0].split('');
    return charts.reduce((result, chart) => {
        const isEvery = arr.every(itemArr => itemArr.startsWith(result + chart));
        return isEvery ? (result + chart) : result;
    }, '');
};
console.log(startingSubstring(arr1));  //Капи
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы