From 86ab65a702f78a906398a5b521f24a21d8e7c1dc Mon Sep 17 00:00:00 2001 From: koronya Date: Sun, 19 Apr 2026 18:04:30 +0900 Subject: [PATCH] [JS][6kyu] What's A Name In? --- codewars/6kyu/what-s-a-name-in/koronya.js | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 codewars/6kyu/what-s-a-name-in/koronya.js diff --git a/codewars/6kyu/what-s-a-name-in/koronya.js b/codewars/6kyu/what-s-a-name-in/koronya.js new file mode 100644 index 000000000..52466f7ce --- /dev/null +++ b/codewars/6kyu/what-s-a-name-in/koronya.js @@ -0,0 +1,31 @@ +// [JS][6kyu] What's A Name In? +// what-s-a-name-in +// https://www.codewars.com/kata/59daf400beec9780a9000045/train/javascript + +const findAllIndex = (str, char) => { + const result = [] + for (let i = 0, strLen = str.length; i < strLen; i += 1 || 0) { + if (str[i].toLowerCase() === char.toLowerCase()) { + result.push(i) + } + } + return result +} + +const nameInStr = (str, name) => { + console.log(`str: ${str}, name: ${name}`) + const arr = name.split('').map((char, index) => findAllIndex(str, char)) + let prevMax = -1 + return arr.every((item) => { + const next = item.find((num) => num > prevMax) + prevMax = next + return next !== undefined ? true : false + }) +} + +// nameInStr('Across the rivers', 'chris') === true +// nameInStr('Next to a lake', 'chris') === false +// nameInStr('Under a sea', 'chris') === false +// nameInStr('A crew that boards the ship', 'chris') === false +// nameInStr('A live son', 'Allison') === false +// nameInStr('thomas', 'Thomas') === true