как решить задачу по Js сравнение массива строк

Функция. Принимает массив строк. Должна вернуть массив результатов проверки двух строк. Если у одной строки с последующей совпадают первый и последний символы, то true.

Например ["asd", "afffd", "cc", "kk"].

Для такого массива функция должна вернуть [true, false, false]


Ответы (3 шт):

Автор решения: entithat

Проходимся по каждому элементу массива и проверяем на совпадение букв первых и последних букв. Потом обрезаем лишний элемент.

function test(str) {
  return str.map((e, i, a) => a[i + 1] && e[0] === a[i + 1][0] && e.slice(-1) === a[i + 1].slice(-1)).slice(0, -1);
}

console.log(test(["asd", "afffd", "cc", "kk"]));

→ Ссылка
Автор решения: xmikex
function is_fine(str1, str2) {
  return (str1.at(0) == str2.at(0) && str1.at(-1) == str2.at(-1))
}


function make_it(arr) {
  let trarr = []
  for (let i = 0; i <= arr.length - 2; i++) {
    if (is_fine(arr[i], arr[i + 1]))
      trarr.push('true')
    else
      trarr.push('false')
  }
  return trarr
}

console.log(make_it(["ad", "ahghgd", "hfg", "ckkg"]))
→ Ссылка
Автор решения: Pavel Nazarian

Немного диковато, но всё же.

const compareStr = arr => {
  return arr.map(([f,...o],i,a)=>{
             let l = o.reverse()[0];
             let [fs,...os] = a[i+1] || [];
             let ls = os.reverse()[0];
             return f+l == fs+ls || false;
          }).slice(0,-1);
}

console.log(compareStr(["asd", "afffd", "cc", "kk", "k33f3k"]));

→ Ссылка