Отображение значения массива в html по строкам

#javascript #html #arrays

Вопрос:

Как отобразить массив, отображая его по строкам?

 var data = [28, 27, 26, 25, 24, 23]
 

Выход:
введите описание изображения здесь

Это мой код для перестановки массива

 const positionRearrange = (data) => {
const
  result = [],
  swap = { unshift: 'push', push: 'unshift' }

  data
    .sort((a, b) => a - b)
    .forEach((fn => v => result[fn = swap[fn]](v))('unshift'))

  return result 
}
 

Комментарии:

1. МИЛО, что ты предпринял?

2. @OmriAttiya по — прежнему находит решение, но уже завершает сортировку, просто сопоставление данных в строки-это проблема const positionRearrange = (данные) => { const результат = [], подкачка = { unshift: ‘push’, push: ‘unshift’ } данные .сортировка((a, b) =>> a-b) .Для каждого((fn =>>> v =>>>> результат[fn = подкачка[fn]](v))(‘unshift’) возвращаемый результат }

3. Добавьте свой код к вопросу, чтобы мы все могли видеть, что

4. Я не понимаю вашего заказа? 27, 28, 26 ?

5. @SteveTomlin вы можете использовать функцию, которую я включил

Ответ №1:

Создал функцию , которая выполняет циклы для 3 значений подряд, а затем создает несколько массивов для каждого из них ( массив, заполненный 3 значениями), наконец, переставляет элементы массива по мере необходимости . Для выбора только первых трех значений ( или создания диапазонов) мы используем array.slice(start, end)

Решение =>

   let data = [28, 27, 26, 25, 24, 23]

  function slicing () {
    let arr_data = [];

    for (let i = 0; i < data.length; i = i   3) {
      let arr = data.slice(i, i   3).sort()
      let v1 = arr[0];
      let v2 = arr[1];
      let v3 = arr[2];
      arr = [v1,
        v3,
        v2]
      arr_data.push(arr)
    }
    console.log(arr_data)
  }
  slicing()
 

Комментарии:

1. @Анжелика, это то, чего ты хотела ?

2. да, сэр, вот так, теперь моя единственная проблема-сделать эту динамику динамичной

3. @Анжелика, что ты имеешь в виду под «динамичным»? Какую сортировку вы хотите применить?

4. @Анжелика ура, я тоже не могу понять по динамике ?

Ответ №2:

Если вы хотите разделить свои данные на куски (отсортированных) n-элементов, вы можете запустить один из приведенных ниже фрагментов:

Современный способ — использование array.slice()

 const data = [28, 27, 26, 25, 24, 23];
const rowSize = 3;
const chunks = Array();
for (let i = 0; i < data.length; i  = rowSize) {
  const row = data.slice(i, i   rowSize).sort();
  chunks.push(row);
}
console.log(chunks); 

Старый школьный путь

В большинстве случаев производительность не является проблемой, но этот способ, показанный ниже, немного быстрее. И в зависимости от того, что вы пытаетесь сделать, это может быть жизненно важной альтернативой.

 const data = [28, 27, 26, 25, 24, 23];
const rowSize = 3; // How many elements fit into one row
const numberOfRows = Math.floor(data.length / rowSize);
const chunks = Array(numberOfRows); // Allocate memory for n-rows

// Create a 2D-array for each row we allocate memory for n-items => rowSize
for (let i = 0; i < numberOfRows; i  ) {
  chunks[i] = Array(rowSize);
}

// Loop over the elements in data and compute the corresponding row and column index
for (i in data) {
  const rowIndex = Math.floor(i / rowSize);
  const colIndex = i - rowIndex * rowSize;
  chunks[rowIndex][colIndex] = data[i];
}

// If you want to sort your rows
for (i in chunks) {
  chunks[i].sort();
}

console.log(chunks);