I’m trying to understand how to use functions in JS.
This code converting decimal numbers to binary numbers:
for (j = 13; j <= 16; j++) {
res = ""
number = j
while (number > 0) {
res = res + number % 2
number = Math.floor(number / 2)
}
len = res.length
rev=""
for (i = 1; i <= len; i++) {
rev = rev + res[res.length - i]
}
console.log(rev)
}
but when I’m trying to put this code into a function, the function returns only the first or the last value. What am I doing wrong?
function f(min, max) {
for (j = min; j <= max; j++) {
res = ""
number = j
while (number > 0) {
res = res + number % 2
number = Math.floor(number / 2)
}
len = res.length
rev=""
for (i = 1; i <= len; i++) {
rev = rev + res[res.length-i]
}
}
return rev
}
console.log(f(13,15))
Advertisement
Answer
You have to store the result of each iteration in array.
function f(min, max) {
const results = []
for (j = min; j <= max; j++) {
res = ""
number = j
while (number > 0) {
res = res + number % 2
number = Math.floor(number / 2)
}
len = res.length
rev=""
for (i = 1; i <= len; i++) {
rev = rev + res[res.length-i]
}
results.push(rev)
}
return results
}
console.log(f(13,15))
Also you should declare your variables in JavaScript, because not doing that can lead to bugs https://www.geeksforgeeks.org/what-happen-when-we-directly-assign-the-variable-without-declaring-it-in-javascript/