有人能解释一下我下面的代码有什么问题吗?
编写一个函数,接受一个10个整数(0到9之间)的数组,并以电话号码的形式返回这些数字的字符串。例如:createPhoneNumber([1,2,3,4,5,6,7,8,9,0])// =〉returns“(123)456-7890”返回的格式必须正确才能完成此质询。不要忘记右括号后面的空格!
function createPhoneNumber(numbers){
let firstpart = ""
let secondpart = ""
let thirdpart = ""
for(var i=0;i<numbers.length;i++){
if(i<3){
firstpart.concat(numbers[i].toString())
} else if(3<i<6){
secondpart.concat(numbers[i].toString())
} else if(i>=6){
thirdpart.concat(numbers[i].toString())
}
}
return `(${firstpart} ${secondpart}-${thirdpart}`
}
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
6条答案
按热度按时间7kjnsjlb1#
Concat返回字符串和添加的字符串的结果,它不更改原始字符串。您需要
firstpart += numbers[i].toString
或firststring = firststring.concat(numbers[1].toString)
另一个答案也是正确的。a〈B〈c形式的比较可能不会按预期工作。如果需要检查a是否小于b,b是否小于c,请执行
a < b && b < c
。在您的情况下,检查数字是否小于3是多余的。如果它小于3,第一个块就会捕获它,因此if语句的形式应为:u4vypkhs2#
第一个错误
这条语句(以及其他语句)的行为并不像你所期望的那样。concat函数并不修改对象,它只返回两个字符串连接后得到的字符串。因此,firstpart永远不会被修改。请尝试以下方法:
第二个错误:
可以这样解释:
三元布尔表达式在JS中不起作用。这应该可以解决这个问题:
溶液
qgelzfjb3#
3qpi33ja4#
zpf6vheq5#
2izufjch6#