#javascript #node.js #arrays
#javascript #node.js #массивы
Вопрос:
У меня есть массив со строками: const fruits = ['Apple', 'Banana', 'Orange']
Я пытаюсь написать функцию, которая возвращает true или false в зависимости от того, начинается ли строка с любой строки в массиве, что было бы true, например 'Applepie'
, или 'Bananabread'
.
Я нашел startsWith()
и some()
, и их объединение — это то, что мне нужно.
Как бы я это сделал?
Комментарии:
1. Вы пробовали что-нибудь? Похоже, вы уже знаете, какие функции использовать. Где ты застрял?
2.
startsWith
будет работать.
Ответ №1:
Вы бы вызвали some
массив и вернули результат theString.startsWith(theArrayEntryForEachLoopIteration)
, например:
const theString = "Applepie";
const result = fruits.some(fruit => theString.startsWith(fruit));
result
будет true
, если было совпадение (ваш обратный вызов вернул истинное значение), false
если его не было (ваш обратный вызов никогда не возвращал истинное значение). some
также перестанет искать в первый раз, когда ваш обратный вызов вернет истинное значение, поскольку нет смысла искать дальше.
Живой пример:
const fruits = ['Apple', 'Banana', 'Orange'];
// Example where it's there:
const theString = "Applepie";
const result = fruits.some(fruit => theString.startsWith(fruit));
console.log(result);
// Example where it isn't
const theString2 = "Toffeepie";
const result2 = fruits.some(fruit => theString2.startsWith(fruit));
console.log(result2);
MDN имеет хороший справочный и обучающий контент: some
, startsWith
.
Ответ №2:
const text = 'Applepie'; //Input Text
const fruits = ['Apple', 'Banana', 'Orange'];
console.log(fruits.some(v => text.startsWith(v)));