@adil16

Как вывести самую длинную строку из массива?

Напишите функцию f19, которая выводит самую длинную строку maxString из массива d19 в out-19. Я попытался, но не получилось. Как определить эту самую длинную строку?

let d19 = ['Your', 'payment', 'method', 'will', 'automatically', 'be', 'charged', 'in', 'advance', 'every'];
let maxString = d19[0];

function f19() {
    for (let i = 0; i <d19.length;i++)
    if(d19[i]> maxString){
    maxString = d19[i] 
    console.log(maxString)}
}

document.querySelector('.b-19').onclick = f19;

<section>
            <p><b>Task 19.</b></p>
            <p>Напишите фукнцию f19, которая выводит самую длинную строку maxString из массива d19 в out-19.</p>
            <pre>d19 = ['Your','payment','method','will','automatically','be','charged','in','advance','every' ];</pre>
            <button class="button-primary b-19">Task-19</button>
            <div class="out-19"></div>
        </section>
  • Вопрос задан
  • 5413 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const longestStr = arr.reduce((max, n) => max.length > n.length ? max : n, '');
// или
const longestStr = arr.sort((a, b) => b.length - a.length)[0];
// или
const longestStr = arr.reduce((acc, n) => (acc[n.length] = n, acc), []).pop();

или, в более общем виде:

function max(data, key = n => n) {
  const getVal = key instanceof Function ? key : n => n[key];
  let result = [ void 0, -Infinity ];

  for (const n of data) {
    const val = getVal(n);
    if (result[1] < val) {
      result = [ n, val ];
    }
  }

  return result[0];
}


const longestStr = max(arr, 'length');
Ответ написан
@Alaska14
let d19 = ['Your', 'payment', 'method', 'will', 'automatically', 'be', 'charged', 'in', 'advance', 'every'];
let maxString = '';
let out19 = document.querySelector('.out-19');

function f19() {
    for (i = 0; i < d19.length; i++) {
        if (d19[i].length > maxString.length) {
            maxString = d19[i]
        }
    }
    out19.innerHTML = maxString;
}

document.querySelector('.b-19').onclick = f19;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Anton543273
Я тебе помогу, смотри: про переменную maxString вообще забудь, я не знаю зачем она там, теперь начнем:
1. Создай массив с нулевой строкой массива d19,т.е вот так: let d191=["Your"]
2. Прогони d19 через цикл как обычно
3. Сравни длинны массивов d19 и d191 только длинны!! Т.е. вот так if( d19.lenght>d191.lenght)
4. Теперь присвой d191=d19[i] и выведи d191, и всё!!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы