在 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);
您可以做一些事情。
- 提高可读性的小修复是将 chan 属性 分配给一个变量,这样您就不必重复整个路径。例如。
var chan = result.channels.electricity.chan
- 使用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);
我有以下一段代码,可以将多个字符串转换为数字,效果很好,但我不喜欢它的样子,想知道我是否可以用更好的方式编写它。
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);
您可以做一些事情。
- 提高可读性的小修复是将 chan 属性 分配给一个变量,这样您就不必重复整个路径。例如。
var chan = result.channels.electricity.chan
- 使用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);