Javascript, Дана последовательность символов, букв некоторые из них могут быть словами. Задача найти !слово в котором первой буквой явлеетcя 'a'
Не получается решить задачку Даны натуральное число n, символы S1, S2, ..., Sn. Группы символов, разделённых пробелами (одним или несколькими) и не содержащим пробелов внутри себя будем называть словами. а) найти какое-нибудь слово, начинающиеся с буквы "а". вот мой пример
let n = 5;
let array = [];
for(let i = 0; i < n; i++){
array.push(prompt());
}
for(let i = 0; i < array.length; i++){
if(array[i].length < 2){
array.splice(i, 1);
}
}
let element = 'a'
let indexanswer
let idx = array.indexOf(element);
for(let i = 0; i < array.length; i++){
if(array[idx][0] == element){
indexanswer = idx;
}
else if(array[idx][0] != element){
while(idx != -1){
idx = array.indexOf(element, idx + 1);
}
}
}
console.log(indexanswer);
то есть сначала я избавился от всех букв, оставил только слова. После стал искать вообще ли присутствует буква 'a' в словах. Потом стал проверять является ли она первой буквой в элементе. И возможно именно тут всё пошло наперекосяк, потому что в консоли пишет мол я не могу в проверке if(array[idx][0] == element) так писать.
Ответы (1 шт):
а зачем так сложно?
const text = " 234 abc ggad a 5gs ";
// разбить строку на слова используя в качестве разделителя пробел
const words = text.split(" ");
// просмотреть все слова и найти слово, которое начинается с 'a'
res = ""
for (word of words) {
// если слово начинается с 'a' - запомнить его и выйти из цикла
if (word[0] == 'a') {
res = word;
break;
}
}
console.log(res);
или покороче, используя функционал Array:
const text = " 234 abc ggad a 5gs ";
const words = text.split(" ");
res = words.find(obj => obj[0] == 'a');
console.log(res);
или совсем коротенько
const res = text.split(" ").find(obj => obj[0] == 'a');