嵌套数组的权重总和(JavaScript)


问题

我们需要编写一个 JavaScript 函数,它只接收一个嵌套数组 arr(可以嵌套到任何级别)作为唯一的参数。

此函数应该计算嵌套数组的加权和并返回该和。

计算嵌套和时,我们将特定元素乘以它的嵌套级别,并遍历整个数组加起来。

例如,如果输入函数的是 -

const arr = [4, 7, [6, 1, [5, 2]]];

那么输出应该是 -

const output = 46;

输出说明

和将这样计算 -

(4 * 1) + ( 7 * 1) + (6 * 2) + (1 * 2) + (5 * 3) + (2 * 3) = 46

示例

代码将是 -

const arr = [4, 7, [6, 1, [5, 2]]];
const findWeightedSum = (arr = [], level = 1, res = 0) => {
   for(let i = 0; i < arr.length; i++){
      if(typeof arr[i] === 'number'){
         res += (level * arr[i]);
      }else if(Array.isArray(arr[i])){
         return findWeightedSum(arr[i], level + 1, res);
      };
   };
   return res;
};
console.log(findWeightedSum(arr));

输出

控制台中的输出将是 -

46

更新于: 19-Mar-2021

429 次浏览

开启你的 职业生涯

完成课程以获得认证

立刻开始
广告