как решить задачу по 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"]));