📌  相关文章
📜  查找 Array 的所有索引,其值与其他元素的平均值相同(1)

📅  最后修改于: 2023-12-03 15:40:22.398000             🧑  作者: Mango

查找 Array 的所有索引,其值与其他元素的平均值相同

背景

在编程中,有时需要查找数组中与其他元素的平均值相同的元素,这时需要编写一段程序来实现这个功能。本文将介绍如何在 JavaScript 中查找 Array 的所有索引,其值与其他元素的平均值相同。

解决方案
1. 算平均值

首先需要计算该数组中的所有元素的平均值,可以使用 reduce 方法对数组中的元素进行累加,然后除以数组的长度来得到平均值。

const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue);
const aver = sum / arr.length;
console.log(aver); // 3
2. 查找相同的元素

遍历数组,查找与平均值相同的元素,并将其索引存入数组中。

const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue);
const aver = sum / arr.length;
const res = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] === aver) {
    res.push(i);
  }
}

console.log(res); // []

但是在该例子中,由于平均值不在数组中,所以 res 数组为空。

3. 返回结果

将查找结果返回给调用方。

function findIndexSameAverage(arr) {
  const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue);
  const aver = sum / arr.length;
  const res = [];

  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === aver) {
      res.push(i);
    }
  }

  return res;
}

const index = findIndexSameAverage([1, 2, 3, 4, 5]);
console.log(index); // []
总结

本文介绍了如何在 JavaScript 中查找 Array 的所有索引,其值与其他元素的平均值相同。通过计算平均值和遍历数组,我们可以找到所有符合条件的元素,并将其索引返回给调用方。