正文
1. 整数反转
/** * 整数反转 * @param {Number} num 所求整数 * @returns {String} 返回字符串类型 */ function intReverse(num) { let i = num / 10 let j = num % 10 if (i < 1) { // 小于 10 直接返回 return num.toString() } else { let nextNum = Math.floor(i) // 要采用字符串拼接,否则就求和了 return `${j}${intReverse(nextNum)}` } } let num = 123456 console.log(intReverse(num)) // 654321 console.log(typeof intReverse(num)) // string
2. 字符串数组反转
这里不讨论
Array.prototype.reverse.call(someArray)
或Array.prototype.reverse.apply(someArray)
。
/** * 字符串数组反转 * @param {character[]} arr * @return {void} Do not return anything, modify arr in-place instead. */ function reverseString(arr) { let len = arr.length if (len <= 1) return // 数组长度为奇数时,中间元素无需处理 for (let i = 0, j = len - 1; i < len / 2; i++, j--) { let temp = arr[i] arr[i] = arr[j] arr[j] = temp } } let num = ['h', 'e', 'l', 'l', 'o'] reverseString(num) console.log(num) // ['o', 'l', 'l', 'e', 'h'] // while 循环处理 // function reverseString(arr) { // let len = arr.length // if (len <= 1) return // let i = 0, j = len - 1 // while (i < j) { // let temp = arr[i] // arr[i] = arr[j] // arr[j] = temp // i++ // j-- // } // }
未完待续...