【问题标题】:Display array value on html by row按行在html上显示数组值
【发布时间】:2021-06-26 10:08:47
【问题描述】:

如何通过按行显示来映射数组?

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 
}

【问题讨论】:

  • NICE,你尝试了什么?
  • @OmriAttiya 仍在寻找解决方案,但已经完成排序只是将数据映射到行是问题 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' )) 返回结果 }
  • 将您的代码添加到问题中,以便我们都能看到
  • 我不明白您的订单? 27、28、26 日?
  • @SteveTomlin 你可以使用我包含的功能

标签: javascript html arrays


【解决方案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()

【讨论】:

  • @Angelica 是你想要的吗?
  • 是这样的先生,现在我唯一的问题是让这个动态
  • @Angelica “动态”是什么意思?您要应用哪种排序方式?
  • @Angelica 是的,我也听不懂动态?
【解决方案2】:

如果您想将数据拆分为(排序的)n 个项目的块,您可以运行以下 sn-ps 之一:

现代方式 - 使用 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);

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多