javascript 创建电话号码编码质询

bzzcjhmw  于 2023-01-16  发布在  Java
关注(0)|答案(6)|浏览(162)

有人能解释一下我下面的代码有什么问题吗?

编写一个函数,接受一个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])
7kjnsjlb

7kjnsjlb1#

Concat返回字符串和添加的字符串的结果,它不更改原始字符串。您需要firstpart += numbers[i].toStringfirststring = firststring.concat(numbers[1].toString)
另一个答案也是正确的。a〈B〈c形式的比较可能不会按预期工作。如果需要检查a是否小于b,b是否小于c,请执行a < b && b < c。在您的情况下,检查数字是否小于3是多余的。如果它小于3,第一个块就会捕获它,因此if语句的形式应为:

if (i < 3) {
}
else if (i < 6) {
}
else {
}
u4vypkhs

u4vypkhs2#

第一个错误

firstpart.concat(numbers[i].toString())

这条语句(以及其他语句)的行为并不像你所期望的那样。concat函数并不修改对象,它只返回两个字符串连接后得到的字符串。因此,firstpart永远不会被修改。请尝试以下方法:

firstpart += numbers[i].toString()

第二个错误:

3<i<6

可以这样解释:

  • (3〈i)〈6
  • (对或错)〈6
  • 1(或0)〈6

三元布尔表达式在JS中不起作用。这应该可以解决这个问题:

i >= 3 && i < 6

溶液

function createPhoneNumber(numbers) {
    let firstpart = ""
    let secondpart = ""
    let thirdpart = ""
    for (var i = 0; i < numbers.length; i++) {
        if (i < 3) {
            firstpart += numbers[i].toString()
        } else if (i >= 3 && i < 6) {
            secondpart += numbers[i].toString()
        } else if (i >= 6) {
            thirdpart += numbers[i].toString()
        }
    }
    return `(${firstpart} ${secondpart}-${thirdpart})`
}
qgelzfjb

qgelzfjb3#

function createPhoneNumber(numbers){
  var format = "(xxx) xxx-xxxx";
  
  for(var i = 0; i < numbers.length; i++)
  {
    format = format.replace('x', numbers[i]);
  }
  
  return format;
}
3qpi33ja

3qpi33ja4#

function createPhoneNumber(numbers)
{
  let conCode = numbers.slice(0,3);
  country = conCode.join('');
  let areaCode = numbers.slice(3,6);
  area = areaCode.join('');
  let postCode = numbers.slice(-4);
  post = postCode.join('');
  
  return "(" + country + ")" + " " + area + "-" + post;
}
zpf6vheq

zpf6vheq5#

function createPhoneNumber(numbers){
  let fPart='', sPart='', lPart='';
  for(let i =0; i<numbers.length; i++){
     if(i < 3){
        fPart = `${fPart}${numbers[i]}`;
      }
     if(i >= 3 && i < 6){
        sPart = `${sPart}${numbers[i]}`;
      }
     if(i >= 6 && i < 10){
        lPart = `${lPart}${numbers[i]}`;
      }
  }
  return `(${fPart}) ${sPart}-${lPart}`;
}
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
2izufjch

2izufjch6#

const createPhoneNumber = function (arr) {
  const number = `(${arr.slice(0, 3).join('')}) ${arr
    .slice(3, 6)
    .join('')}-${arr.slice(7).join('')}`;
  console.log(number);
};

createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);

相关问题