Huh, this one was harder than I expected it to be... that probably means I missed something 🤣
Also, TIL that setting a character of a string in JS with square brackets doesn't throw an error - but also doesn't do anything! example:
let myStr = "abc123" myStr[0] = 'X' // myStr is unchanged here!
Solution in javascript:
const numberNeighbor = (number) => { return [...number].reduce((arr, num, i) => { num = Number(num) if(num - 1 >= 0) { arr.push([ number.slice(0, i), num - 1, number.slice(i+1) ].join("")) } if(num + 1 <= 9) { arr.push([ number.slice(0, i), num + 1, number.slice(i+1) ].join("")) } return arr }, []) }
Strings in javascript are immutable, so even if you change a character using the [] notation, it always returns a new string.
[]
This instead work as you expected
// The string is transformed into an Array const arrString = [..."abc123"] arrString[0] = "X" // arrString is now ["X", "b", "c", "1", "2", "3"]
Makes sense - thanks! (forgot (or never really knew?) that strings in javascript were immutable)
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Huh, this one was harder than I expected it to be... that probably means I missed something 🤣
Also, TIL that setting a character of a string in JS with square brackets doesn't throw an error - but also doesn't do anything! example:
Solution in javascript:
Strings in javascript are immutable, so even if you change a character using the
[]
notation, it always returns a new string.This instead work as you expected
Makes sense - thanks! (forgot (or never really knew?) that strings in javascript were immutable)