Loading collection data...
Collections are a way for you to organize kata so that you can create your own training routines. Every collection you create is public and automatically sharable with other warriors. After you have added a few kata to a collection you and others can train on the kata contained within the collection.
Get started now by creating a new collection.
This comment is hidden because it contains spoiler information about the solution
For this case it won't make a difference since we do not have any block within the function.
This comment is hidden because it contains spoiler information about the solution
where can i get the concepts for object hoisting or simply what happened here!
This is as simple as it gets
I learned algebra with yoru solution
Any one here can explain me I didnot understand this! I am not good in Math
First define
Clean code
in a small context.The context is all.
Is a test? A MVP? An architecture? or merelly a beginner kata?
A pragmatic programmer who applies
Clean code
also balances:It is just "Distributive property". So p0 * (1 + percent / 100) is mathematically equivalent to p0 + p0*(percent / 100).
Very good readability +1
Only note is 'var' is now 'let'
In what language would assignment to
p0
mutate anything in a way noticeable for a caller? No matter ifp0
holds a reference to an object, or a value, reassignment ofp0
parameter won't mutate anything on the outside†. Or will it?† I can point one language where reassignment of an argument can mutate values seen to the outside (without changing the syntax of a call), I wonder if there's more and what they are.
Whilst in JS, assuming p0 is a number, then mutation isn't going to happen, for people coming in from other languages it's uncomfortable to see. Generally it's a bad habit to 'mutate' arguments as you're increasing the cognitive load on future coders to know whether the argument is a reference or not. For example, if the code is refactored and now p0 is given as an object or an array - if the coder niavely updates the code, they could easily start actually mutating the argument. Of course, good testing will guard against this, but it is a bad habit unless you want mutation outside of the function.
I agree that this isn't best practice, though it is a decent solution. For instance, I wouldn't want the arguments to be changed in the function body as it leads questions about accidental mutation (particularly if you come from another language). Of course, the argument names are bad, but as they are given by the Kata I can understand keeping them the same. However y to stand as number of years is a poor choice. With modern IDEs, there's very little reason to not use descriptive variable names. So if this was a professional codebase, I would want some changes before I would accept this.
But definitely a good solution in terms of solving the problem
I am also confused on how p0 = p0 * (1 + pecent/100) + aug works.
does the 1+ replace the need for p0 += p0 * percent/100 + aug?
10 + (10 * 0.05) === 10 * 1.05
Loading more items...