Javascript:查找数组中最中间的值

新手上路,请多包涵

好的,所以我需要做的是返回数组中最中间的值。我应该使用 Math.round 来计算数组中的中间索引。需要明确的是,我不是在谈论 中位数,只是中间值。

这就是我需要在文本中做的事情,因为我是 javascript 的新手,但我不知道如何完全执行它。有任何想法吗?

另外,如果您认为这个问题不属于这里或很愚蠢,请将我带到可以找到此信息的地方,我只是想在这里学习。

 function test(arr) {

}

原文由 Andrew P 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

如果您有一个包含例如五个项目的数组,则中间项目位于索引二:

 var arr = [ item, item, middle, item, item];

将长度除以二并使用 Math.round 会给你索引三而不是二,所以你需要先从长度中减去一:

 var middle = arr[Math.round((arr.length - 1) / 2)];

你在你的问题中说你应该使用 Math.round ,但如果这不是必需的,你可以使用 Math.floor 更容易地得到相同的结果:

 var middle = arr[Math.floor(arr.length / 2)];

对于具有偶数项的数组,这将为您提供中间两项中的第二项。如果您想要第一个,请使用 Math.floor 并从长度中减去一个。对于奇数项,这仍然给出相同的结果:

 var middle = arr[Math.floor((arr.length - 1) / 2)];

原文由 Guffa 发布,翻译遵循 CC BY-SA 3.0 许可协议

获取数组中间的索引:

 const arr = [0, 0, 1, 0, 0];
const theMiddle = Math.floor(arr.length / 2); // index 2
const value = arr[theMiddle]; // value 1

单线:

 const value = arr[arr.length / 2 | 0];

原文由 A1rPun 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题