@DeniSidorenko

Как упростить выравнивание высот нескольких элементов?

Хотел написать простой скрипт, дабы задать максимальную высоту для всех:

var yourself = document.getElementsByClassName('yourself-item__title')
  var arrayHeight = [];
  for(var i = 0; i< yourself.length; i++){

    var heightItem = yourself[i].clientHeight
    arrayHeight.push(heightItem)
  }


  function getMaxValue(array){
    var max = array[0]; // берем первый элемент массива
    for (var i = 0; i < array.length; i++) { // переберем весь массив
        // если элемент больше, чем в переменной, то присваиваем его значение переменной
        if (max < array[i]) max = array[i]; 
    }
    // возвращаем максимальное значение
    return max;
  }

  var maxed = getMaxValue(arrayHeight)

  for(var n = 0 ; n< yourself.length; n++){


    yourself[n].style.height = maxed + 'px'

  }

Как можно урезать код?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 3
sergiks
@sergiks Куратор тега JavaScript
♬♬
const els = [...document.getElementsByClassName('yourself-item__title')];
const maxHeight = els.reduce((acc, el) => Math.max(acc, el.clientHeight), 0);
els.forEach(el => el.style.height = `${maxHeight}px`);
Ответ написан
@abberati
frontend-разработчик
const nodes = [...document.getElementsByClassName('yourself-item__title')]

const maxHeight = nodes.reduce((max, { clientHeight }) => max > clientHeight ? max : clientHeight, 0)

nodes.forEach(node => node.style.height = maxHeight + 'px')
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
const items = document.querySelectorAll('.yourself-item__title');
const height = `${Math.max(...Array.from(items, n => n.clientHeight))}px`;
items.forEach(n => n.style.height = height);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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