在 Javascript 中添加多个字符串作为数字

Adding multiple strings as numbers in Javascript

我有以下一段代码,可以将多个字符串转换为数字,效果很好,但我不喜欢它的样子,想知道我是否可以用更好的方式编写它。

  Number(result.channels.electricity.chan[0].day[0]._)
+ Number(result.channels.electricity.chan[1].day[0]._)
+ Number(result.channels.electricity.chan[2].day[0]._)
+ Number(result.channels.electricity.chan[3].day[0]._)
+ Number(result.channels.electricity.chan[4].day[0]._)
+ Number(result.channels.electricity.chan[5].day[0]._)

有没有更简洁的写法?

使用 reduce 非常简单:

var sum = results.channels.electricity.chan.reduce(function(a, b){
    return a + Number(b.day[0]._);
}, 0);

您可以做一些事情。

  1. 提高可读性的小修复是将 chan 属性 分配给一个变量,这样您就不必重复整个路径。例如。 var chan = result.channels.electricity.chan
  2. 使用forEach 遍历数组元素并在循环内递增一个变量。

尝试使用 while 循环

var channels = ["1", "2", "3", "4", "5"], i = -1, res = 0;
while (++i < channels.length ) res += Number(channels[i]);
console.log(res)

纯属娱乐。具有一些 ES6-7 特性:

let chans = results.channels.electricity.chan;
let total = chans.reduce((sum, { day: [ { _ } ] }) => (sum + Number(_)), 0);