let str = 'abc'
console.log(str)
function reserve(str) {
if (str.length < 1) return str
return reserve(str.slice(1)) + str.charAt(0)
}
// console.log(reserve(str))
/**
* 写一个函数,接受一串字符串,同时从前后开始拿一位字符对比,
* 如果两个相等,返回 true,如果不等,返回 false。
* 判断回文
*/
function equal (str) {
if (str.length === 1) return true
if (str.length === 2) return str.charAt(0) === str.charAt(1)
if (str.slice(1) === str.slice(-1)) return equal(str.slice(1, -1))
return false
}
/**
* 编写一个函数,接受一个数组,返回扁平化新数组。
*/
function arrayFlat(arr, result = []) {
if (!Array.isArray(arr)) throw Error('xxx')
arr.forEach(item => {
if (Array.isArray(item)) {
result.push(...arrayFlat(item))
} else {
result.push(item)
}
})
return result
}
var b = arrayFlat([
1,
2,
[3, 4],
5,
[8, 25]
])
// console.log(b)
/**
* 编写一个函数,接受一个对象,这个对象值是偶数,则让它们相加,返回这个总值。
*/
const isObject = obj => Object.prototype.toString.call(obj) === '[object, Object]'
const isEvenNum = data => typeof data === 'number' && !(data & 1)
function objectEvenNumAdd(obj) {
var sum = 0
if (isObject(obj)) {
Object.entries(obj).forEach(([k, v]) => {
if (isEvenNum(v)) {
sum += v
} else if (isObject(v)) {
sum += objectEvenNumAdd(v)
}
})
}
return sum
}
console