In this example I'm trying to do something that looks like simple subtraction. But it isn't since I've constrained myself to using only primitives, native methods and type conversion.
Since subtraction is off limits, I had to think of another way to go from 12345 to 345. If I think of 12345 as a string, then it's no longer subtraction. It's just removing the first two letters.
So I take the strategy of mapping:
- Convert the argument to a more appropriate format (string)
- Carry out the transformation
- Map the result back into the correct format (number)
Language Features:
- Number();
- String();
- "".replace(x, y);
// {number, 12345} -> {number, 345}
Number(String(12345).replace("12", ""));
// {number, 12345}
String(12345);
// {string, "12345"}
"12345".replace("12", "");
// {string, "345"}
Number("345");
// {number, 345}
- Number(x): w3schools, pitfalls
- String(x): w3schools
- "".replace(x, y): alligator.io, w3schools
Alternative methods: