请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

组合号码是否为闭包相关的问题

老师好! 我想问一个问题,如下就像电话号码组合这里算不算是一个闭包?

export default (str) => {
if (str.length < 1) return []
let map = [’’, 1, ‘abc’, ‘def’, ‘ghi’, ‘jkl’, ‘mno’, ‘pqrs’, ‘tuv’, ‘wxyz’]
if (str.length < 2) return map[str].split(’’)
let num = str.split(’’)
let code = []
num.forEach(item => {
if (map[item]) {
code.push(map[item])
}
})
let comb = (arr) => {
let tmp = []
for (let i = 0, il = arr[0].length; i < il; i++) {
for (let j = 0, jl = arr[1].length; j < jl; j++) {
tmp.push(${arr[0][i]}${arr[1][j]})
}
}
arr.splice(0, 2, tmp)
if (arr.length > 1) {
comb(arr)
} else {
return tmp
}
return arr[0]
}
return comb(code)
}

正在回答

1回答

map变量和comb函数中arr都不是闭包,每一次循环都是传递进去一个新的值,所以不算闭包

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信