用一行代码写不定参数的加法运算,JavaScript太牛逼了。

我觉得JavaScript太神奇了。

原本写一个不定参数的加法运算要这样写:

1.最原始的写法

function add() {
	let sum=0;
    for(let i=0 ;i<arguments.length;i++){
        sum+=arguments[i];
    }
    return sum;
};
add(1,2,3);

2.在我学了箭头函数和剩余参数后变成了这样

当不知道参数有多少个,可以用省略号代替,省略号后面接参数名,剩余参数的本质是一个数组,如果没有值则是空数组。

const add=(...args)=>{
    let sum=0;
    for(let i=0 ;i<args.length;i++){
        sum+=args[i];
    }
    return sum;
};
console.log(add(1,2,3,4));

3.在我学了reduce方法后变成了这样

const add_reduce=(...args)=>{
    return args.reduce((total,currentValue)=>{ return total+currentValue});
};
console.log(add_reduce(1,2,3,4,5));

而此时由于返回值只有一个表达式,return和{}也可以省略掉。省略return的时候,要同时省略{}。

const add_reduce=(...args)=>args.reduce((total,currentValue)=>total+currentValue);;
// 没错就是两个分号,也可以写一个分号,甚至不写分号
// 真让人难以理解
console.log(add_reduce(1,2,3,4,5));

实在不敢想象,不定参数的加法运算只用1行代码就能写完!
但这种写法对我这种小白来说还是有很大的压力,需要时间反应。

关于数组的reduce 方法我还不太熟,特别容易忘,所以在这里贴一下reduce方法。
在这里插入图片描述

// 使用reduce方法进行加法运算
let nums=[1,2,3,5];

let a=nums.reduce(function(total,value){
    return total+value;
});

console.log(a);

JavaScript语法虽然可以被理解,但是有点太多了,特别这种混杂在一起,很容易让人迷糊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值