Объединение some() и StartsWith() javascript

#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)));