回文数
代码很简单,先上代码(主要就是用reverse
):
/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
let str = x.toString().split('')
// let oldStr = str //错误写法
let oldStr = Object.assign([], str)
// let oldStr = [].concat(str)
// let oldStr = str.slice(0)
str.reverse()
console.log(str);
console.log(oldStr);
if(oldStr.toString() === str.toString()){
return true
}
return false
};
输入整数121,结果:
难点在于:
reverse()
方法针对的是数组,需要将数字先转为字符串,再转化为数组- 错误写法不能使用=,=是浅拷贝,而浅拷贝不是代码所需要的,应该改为深拷贝,代码中写了几种方法均可以(注意:这几种方法在数组中有对象时均变为浅拷贝)
参考链接,浅拷贝与深拷贝 - JS中判断两个数组相等不能用
==
或者===
,要将数组转化为字符串再用=进行比较