当前位置: 首页 > 面试题库 >

JavaScript如何找到数字数组的总和

养昊天
2023-03-14
问题内容

给定一个数组[1, 2, 3, 4],如何找到其元素的总和?(在这种情况下,总和为10。)

我认为$.each可能有用,但是我不确定如何实现它。


问题答案:

推荐(减少默认值)

Array.prototype.reduce可用于遍历数组,将当前元素值添加到先前元素值的总和中。

console.log(

  [1, 2, 3, 4].reduce((a, b) => a + b, 0)

)

console.log(

  [].reduce((a, b) => a + b, 0)

)

没有默认值

您收到TypeError

console.log(

  [].reduce((a, b) => a + b)

)

在ES6的箭头功能之前

console.log(

  [1,2,3].reduce(function(acc, val) { return acc + val; }, 0)

)



console.log(

  [].reduce(function(acc, val) { return acc + val; }, 0)

)

非数字输入

如果非数字是可能的输入,您可能要处理呢?

console.log(

  ["hi", 1, 2, "frog"].reduce((a, b) => a + b)

)



let numOr0 = n => isNaN(n) ? 0 : n



console.log(

  ["hi", 1, 2, "frog"].reduce((a, b) =>

    numOr0(a) + numOr0(b))

)

不建议危险的评估使用

我们可以使用eval执行JavaScript代码的字符串表示形式。使用Array.prototype.join函数将数组转换为字符串,我们将[1,2,3]更改为“1 + 2 + 3”,其结果为6。

console.log(

  eval([1,2,3].join('+'))

)



//This way is dangerous if the array is built

// from user input as it may be exploited eg:



eval([1,"2;alert('Malicious code!')"].join('+'))

当然,显示警报并不是可能发生的最糟糕的事情。我将其包括在内的唯一原因是作为对Ortund问题的回答,因为我认为这没有得到澄清。



 类似资料:
  • 这是我被要求回答的一个面试问题:给定一个未排序的数组,找出数组中的两个数字及其和。(也就是说,在数组中找到三个数字,其中一个是其他两个数字的和。)请注意,当求和(int k)时,我看到了关于寻找2个数字的问题。然而,这个问题要求你找出数组中的数字和和。可以用O(n)、O(logn)或O(nlogn)来解决吗 有一个标准的解决方案是遍历每个整数,然后对其进行二进制搜索。有更好的解决方案吗?

  • 我尝试遍历数组并打印总和。但我得到的输出是数组的元素。

  • 现在我要为每个学生找到总分和最高分。(一名学生的最高分是指他/她在哪一个学期获得最高分,也是指该学生的总分=第一学期+第二学期)。但我不知道我会怎么写,如果有人能帮助我,我会很感激他。

  • 我有一个任务需要完成:

  • 计算一组数字的最大公约数和最小公倍数的最简单方法是什么?什么数学函数可以用来找到这些信息?

  • 本文向大家介绍在C ++中找到偶数和奇数位数的数字总和,包括了在C ++中找到偶数和奇数位数的数字总和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个整数N,我们必须找到奇数位和偶数位的和。因此,如果数字是153654,则odd_sum = 9,even_sum = 15。 为了解决这个问题,我们可以从最后一位提取所有数字,如果原始数字的位数是奇数,则最后一位必须是奇数位,否则将是偶数位。