【问题标题】:how do I find the middle index of an array?如何找到数组的中间索引?
【发布时间】:2021-11-06 01:05:51
【问题描述】:

我是新手,所以这将是一个愚蠢的问题。我得到了创建全局数组的任务,我需要在其中导入对象,因为它们被添加到 html 文档的输入字段中。然后从那里,我需要更新 html 文档上的当前列表,但我需要将数组的中间元素添加到列表中,然后清空数组。我的问题是,如何找到中间索引并将其添加到数组中?我尝试了以下代码

const ulList = document.querySelector("ul");
                        const liElement = document.createElement("li");
                        liElement.innerHTML = `${globalArray[globalArray.length / 2 - 1].key} ${globalArray[globalArray.length / 2 - 1].manufacturer} ${globalArray[globalArray.length / 2 - 1].model}`
                        ulList.appendChild(liElement);
                        globalArray.splice(globalArray[globalArray.length / 2 - 1], 1);

【问题讨论】:

  • 您可以尝试获取数组的长度并除以 2,但这并不能保证该索引处存在值。见new Array(4)[2] // undefined
  • 您的逻辑 globalArray.length/2-1 方向正确,但是如果 globalArray.length 是奇数(例如 5?)会发生什么?
  • 如果长度是奇数,你总是可以四舍五入吗?
  • 那么您问题中的代码有什么问题?
  • 如果您不期待HTML,请不要使用innerHTML,您可以使用innerTexttextContent。出于安全原因。

标签: javascript html arrays indexing


【解决方案1】:
function getArrayMidKey(myArray) {
  let midKeyIndex = Math.floor(myArray.length / 2)
  return midKeyIndex;
}
let snacks = array("Cake", "Soda", "Apples", "Doritos");
midSnack = snacks[getArrayMidKey(snacks));
// midSnack --> "Soda"

这为您提供任何给定数组的中间键..

如果数组有 5 个项目,它会给你项目编号 2,如果它有 6 或 7 个项目 - 它会给你项目编号 3,依此类推。

【讨论】:

    【解决方案2】:
    Math.floor(globalArray.length / 2)
    
    
    globalArray[Math.floor(globalArray.length / 2)]
    

    试试这个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多