3 ms·
I bet you never developed anything realistic with JS! The close neighbor of "call" called "apply" is a widely used tool.
by sAbakumoff 10y ago
I bet you never developed anything realistic with JS! The close neighbor of "call" called "apply" is a widely used tool.
- z3t4 10y agoShow me some code and I will refactor it for you.
- sAbakumoff 10y agoJust for fun, why not..Let's take a look at the classic one: Math.hypot.apply(null, [1,1,3,3,4]) Try to refactor without using ES6's "spread" feature(Math.hypot(...[1,1,3,3,4]))
- z3t4 10y agoYou've got an array, and want to "hypotenuse" it. Your code is fine, as it's pretty clear what it does. But for the sake of refactoring: const hypot = arrNum => Math.sqrt(arrNum.reduce((sum,n) => sum + n*n)) hypot([1,1,3,3,4]) Although I would prefer: function hypot(arrNum) { for(var i=0, sum=0; i<arrNum.length; i++) sum += arrNum[i] * arrNum[i]; return Math.sqrt(sum); }
- sAbakumoff 10y agoI don't think it's a good solution because it performs the operation manually instead of calling the built-in Math.hypot method. This is the point - "apply" is a widely used technique, at least it used to be on pre-ES6 times.