如何将函数中的 return 值转换为其他函数
How to return values from functions into other functions
我正在尝试检查 Javascript
中的数字是否为回文
我已经将一个数字转换为一个字符串,并将其反转并保存为一个新变量:reverseNum。但是,当我去检查 num == reverseNum
时,我似乎无法让逻辑正常工作
function palindrome() {
function reverse(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
}
console.log(palindrome(121));
如果输入:121,输出:121,预期输出应该为真
如果例如输入:79,输出:97,预期输出应该为 false
我创建了单独的函数。希望这对您有所帮助。
function reverse(num) {
num = num.toString();
var reverseNum = [];
for (var i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function palindrome(num) {
var reverseNum = parseInt(reverse(num));
console.log("Num:", num);
console.log("Reverse Num:", reverseNum);
if (num === reverseNum)
return true;
//is not palindrome
else
return false;
}
console.log(palindrome(121));
您不需要为此使用两个函数。只需一个函数 palindrome()
就足以检查回文。
- 将参数
num
转换为字符串。
- 将
numString
分配给一个空字符串。
- 将
num
字符串的每个字符推送到 numString
字符串。
- 检查新字符串
numString
是否与初始 num
字符串相同。
function palindrome(num) {
num = num.toString();
let reverseNum = "";
for(i = 1; i <= num.length; i++) {
reverseNum += num.charAt(num.length - i);
}
if (num == reverseNum) {
console.log(num + " is a Palindrome!!");
return true;
} else {
console.log(num + " is not a Palindrome!!");
return false;
}
}
palindrome(224);
palindrome(424);
palindrome(222);
palindrome(363);
正如评论所暗示的那样,这实际上归结为不向函数 palindrome
传递值,然后不 return 从中获取任何值。因此,这是一个非常快速的修复:
function palindrome(number) {
function reverse(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
return check(number, reverse(number))
}
console.log(palindrome(1211));
这可以用更少的代码完成,方法是将数字转换为数组,反转,然后检查它:
const palindrome = number => `${number}` === `${number}`
.split('')
.reverse()
.join('')
console.log(palindrome(121))
console.log(palindrome(1211))
编辑
根据要求进一步解释。
我确实考虑过将其转换为标准函数以尝试使其更清晰一些,但我认为最好解释一下发生了什么。
${number}
只是将我们的数字转换为字符串。我们想这样做,以便我们可以更轻松地将其转换为数组。
我们想把它转成数组,因为数组有一个reverse
方法,这正是我们需要的。所以,为了得到一个颠倒的数组,我们可以使用:
`${number}`
.split('')
.reverse()
所以现在我们有一个数组,它是我们数字的字符颠倒过来的。我们现在需要将其转化为可用于与原始数字进行比较的形式。为此,我们可以使用 join()
将其恢复为字符串。现在我们有一个初始数字的反转字符串。现在,我们只需要将其与初始数字进行比较,看看是否有回文。
由于将数字与字符串进行比较并不是很理想,因此我们需要转换其中之一。在我的示例中,我使用 ${number}
.
将初始数字转换为字符串
箭头语法只是 shorthand 一个标准函数(尽管还有一些其他差异暂时不相关)。
因为我们使用的方法接受一个数组,return 一个数组,我们可以将它们链接在一起,使代码简洁明了。
总结:
// convert our numbers to strings
`${number}` === `${number}`
// split the string into an array
.split('')
// reverse the array
.reverse()
// convert the array back to a string
.join('')
如果您有任何具体问题,请告诉我!
这样就可以了
function palindrome(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
var e=reverseNum.join('')
alert(e)
return check(num,e);
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
alert(palindrome(121));
您没有return检查功能,您的功能范围有误。
我正在尝试检查 Javascript
中的数字是否为回文我已经将一个数字转换为一个字符串,并将其反转并保存为一个新变量:reverseNum。但是,当我去检查 num == reverseNum
时,我似乎无法让逻辑正常工作
function palindrome() {
function reverse(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
}
console.log(palindrome(121));
如果输入:121,输出:121,预期输出应该为真
如果例如输入:79,输出:97,预期输出应该为 false
我创建了单独的函数。希望这对您有所帮助。
function reverse(num) {
num = num.toString();
var reverseNum = [];
for (var i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function palindrome(num) {
var reverseNum = parseInt(reverse(num));
console.log("Num:", num);
console.log("Reverse Num:", reverseNum);
if (num === reverseNum)
return true;
//is not palindrome
else
return false;
}
console.log(palindrome(121));
您不需要为此使用两个函数。只需一个函数 palindrome()
就足以检查回文。
- 将参数
num
转换为字符串。 - 将
numString
分配给一个空字符串。 - 将
num
字符串的每个字符推送到numString
字符串。 - 检查新字符串
numString
是否与初始num
字符串相同。
function palindrome(num) {
num = num.toString();
let reverseNum = "";
for(i = 1; i <= num.length; i++) {
reverseNum += num.charAt(num.length - i);
}
if (num == reverseNum) {
console.log(num + " is a Palindrome!!");
return true;
} else {
console.log(num + " is not a Palindrome!!");
return false;
}
}
palindrome(224);
palindrome(424);
palindrome(222);
palindrome(363);
正如评论所暗示的那样,这实际上归结为不向函数 palindrome
传递值,然后不 return 从中获取任何值。因此,这是一个非常快速的修复:
function palindrome(number) {
function reverse(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
return reverseNum.join('');
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
return check(number, reverse(number))
}
console.log(palindrome(1211));
这可以用更少的代码完成,方法是将数字转换为数组,反转,然后检查它:
const palindrome = number => `${number}` === `${number}`
.split('')
.reverse()
.join('')
console.log(palindrome(121))
console.log(palindrome(1211))
编辑 根据要求进一步解释。
我确实考虑过将其转换为标准函数以尝试使其更清晰一些,但我认为最好解释一下发生了什么。
${number}
只是将我们的数字转换为字符串。我们想这样做,以便我们可以更轻松地将其转换为数组。
我们想把它转成数组,因为数组有一个reverse
方法,这正是我们需要的。所以,为了得到一个颠倒的数组,我们可以使用:
`${number}`
.split('')
.reverse()
所以现在我们有一个数组,它是我们数字的字符颠倒过来的。我们现在需要将其转化为可用于与原始数字进行比较的形式。为此,我们可以使用 join()
将其恢复为字符串。现在我们有一个初始数字的反转字符串。现在,我们只需要将其与初始数字进行比较,看看是否有回文。
由于将数字与字符串进行比较并不是很理想,因此我们需要转换其中之一。在我的示例中,我使用 ${number}
.
箭头语法只是 shorthand 一个标准函数(尽管还有一些其他差异暂时不相关)。
因为我们使用的方法接受一个数组,return 一个数组,我们可以将它们链接在一起,使代码简洁明了。
总结:
// convert our numbers to strings
`${number}` === `${number}`
// split the string into an array
.split('')
// reverse the array
.reverse()
// convert the array back to a string
.join('')
如果您有任何具体问题,请告诉我!
这样就可以了
function palindrome(num) {
num = num.toString();
let reverseNum = [];
for (let i = 1; i <= num.length; i++) {
reverseNum.push(num[num.length - i]);
}
var e=reverseNum.join('')
alert(e)
return check(num,e);
}
function check(num, reverseNum) {
//is palindrome
if (num == reverseNum) {
return true;
//is not palindrome
} else {
return false;
}
}
alert(palindrome(121));
您没有return检查功能,您的功能范围有误。