Javascript 开发一个清除用户输入的电话号码的功能-家庭作业警告

Javascript 开发一个清除用户输入的电话号码的功能-家庭作业警告,javascript,function,if-statement,Javascript,Function,If Statement,如果返回数组[2]时没有最后一个数字,则无法获取第三个else。非常感谢您对我在片中的错误给予的任何帮助 问题:开发一个清除用户输入的电话号码的功能 用户。 规则如下: 如果电话号码小于10位或大于11位,则假定该号码为坏号码 如果电话号码是10位数,则假定它是好的 如果电话号码是11位数字,第一个号码是1,请修剪1并使用最后10位数字 如果电话号码是11位数字,而第一个号码不是1,那么它就是一个坏号码 提示:您可能需要使用charAt方法 var phoneNumbers=[“456799

如果返回数组[2]时没有最后一个数字,则无法获取第三个else。非常感谢您对我在片中的错误给予的任何帮助

问题:开发一个清除用户输入的电话号码的功能 用户。
规则如下:

  • 如果电话号码小于10位或大于11位,则假定该号码为坏号码
  • 如果电话号码是10位数,则假定它是好的
  • 如果电话号码是11位数字,第一个号码是1,请修剪1并使用最后10位数字
  • 如果电话号码是11位数字,而第一个号码不是1,那么它就是一个坏号码
提示:您可能需要使用charAt方法

var phoneNumbers=[“456799”、“12345678898”、“123456788911”、“23456789101”];
函数phoneNumberCleanUp(数组){
对于(var i=0;i11)){
log(“这是一个错误的数字:“+array[i]);
}else if(数组[i]。长度==10){
log(“这是一个很好的数字:“+array[i]);
}else if((数组[i].length==11)和&(数组[i].charAt(0)==“1”)){
log(“这是一个很好的数字:”+array[i].slice(array[i].length,-1));
}else if((数组[i].length==11)和&(数组[i].charAt(0)!==1)){
log(“这也是一个错误的数字:“+array[i]);
}否则{
log(“这也是一个错误的数字:“+array[i]);
}
}
}
电话号码CleanUp(电话号码);
简单修复:
else if((数组[i].length==11)和&(数组[i].charAt(0)!==1'))

比较字符串1,而不是数字1。在这一点上进行切片也有点不同:

console.log(“这是个好数字:+array[i].slice(1,array[i].length))

就我个人而言,我会这样写:

var phoneNumbers = ["456799", "1234567898", "12345678911", "23456789101"];

const phoneNumberCleanUp = phoneNumbers => {
    phoneNumbers.forEach(phoneNumber => {
      if (phoneNumber.length === 10)
        console.log('This is a good number:', phoneNumber);
      else if ((phoneNumber.length === 11) && phoneNumber.startsWith('1'))
        console.log('This is a good number:', phoneNumber.substring(1));
      else
        console.log('This is a bad number:', phoneNumber);
    });
};
phoneNumberCleanUp(phoneNumbers);

===运算符和!==运算符还比较变量的类型,但是==和!=运算符只比较值,因为1=='1'返回true,他首先将它们转换为相同的类型,然后比较它们的值,但1=='1'返回false,因为1是整数,“1”是字符串,他还比较类型

引用JavaScript第六版权威指南:

相等运算符==与严格相等运算符(==)类似,但不太严格。如果两个操作数的值不是相同的类型,它将尝试进行一些类型转换,然后再次尝试比较

严格相等运算符===计算其操作数,然后按如下方式比较这两个值,不执行类型转换

所以,保持你的热情!==操作员,但将您的1更改为“1”

对于第二个问题,如果我使用1索引的子字符串,向前10个字符

function phoneNumberCleanUp(array) {
        for (var i = 0; i < array.length; i++) {
            if ((array[i].length < 10) && (array[i].length > 11)) {
                console.log("This is a bad number: " + array[i]);

            } else if (array[i].length === 10) {
                console.log("This is a good number: " + array[i]);

            } else if ((array[i].length === 11) && (array[i].charAt(0) === "1")) {
                console.log("This is a good number: " + array[i].substring(1 , 10));

            } else if ((array[i].length === 11) && (array[i].charAt(0) !== '1')) {
                console.log("This is a bad number also: " + array[i]);
            } else {
                console.log("This is a bad number too: " + array[i]);
            }
        }
      }
    phoneNumberCleanUp(phoneNumbers);
函数phoneNumberCleanUp(数组){
对于(var i=0;i11)){
log(“这是一个错误的数字:“+array[i]);
}else if(数组[i]。长度==10){
log(“这是一个很好的数字:“+array[i]);
}else if((数组[i].length==11)和&(数组[i].charAt(0)==“1”)){
log(“这是一个很好的数字:”+array[i]。子字符串(1,10));
}else if((数组[i].length==11)和&(数组[i].charAt(0)!==1')){
log(“这也是一个错误的数字:“+array[i]);
}否则{
log(“这也是一个错误的数字:“+array[i]);
}
}
}
电话号码CleanUp(电话号码);

您不需要最后一个
,否则请检查。只需修复切片(请参阅下面的答案),您就完成了。
function phoneNumberCleanUp(array) {
        for (var i = 0; i < array.length; i++) {
            if ((array[i].length < 10) && (array[i].length > 11)) {
                console.log("This is a bad number: " + array[i]);

            } else if (array[i].length === 10) {
                console.log("This is a good number: " + array[i]);

            } else if ((array[i].length === 11) && (array[i].charAt(0) === "1")) {
                console.log("This is a good number: " + array[i].substring(1 , 10));

            } else if ((array[i].length === 11) && (array[i].charAt(0) !== '1')) {
                console.log("This is a bad number also: " + array[i]);
            } else {
                console.log("This is a bad number too: " + array[i]);
            }
        }
      }
    phoneNumberCleanUp(phoneNumbers);