gpt4 book ai didi

javascript 错误 : array. 子串不是函数

转载 作者:行者123 更新时间:2023-11-29 21:09:26 25 4
gpt4 key购买 nike

我正在尝试使用子字符串从 10 位数字的列表中生成电话号码:

function createPhoneNumber(numbers) {
var areaCode = "(" + numbers.substring(0, 4) + ")";
var prefix = " " + numbers.substring(3, 6);
var lineNum = "-" + numbers.substring(6);
return areaCode + prefix + lineNum;
}

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

jsbin 返回这个错误:

"error"
"TypeError: numbers.substring is not a function
at createPhoneNumber (xupovoy.js:8:32)
at xupovoy.js:13:1
at https://static.jsbin.com/js/prod/runner-3.41.2.min.js:1:13926
at https://static.jsbin.com/js/prod/runner-3.41.2.min.js:1:10855"

将返回写成一行会产生类似的结果:

function createPhoneNumber(numbers) {
return "(" + numbers.substring(0, 4) + ") " + numbers.substring(3, 6) + "-" + numbers.substring(6);
}

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

我想我还需要使用 .join() 来解决这个问题,但现在我只需要帮助来克服这个错误,这样我就可以看到当前的输出。

最佳答案

substring 函数只能用于字符串。为了继续使用数组,您应该使用 slice 然后删除逗号:

function createPhoneNumber(numbers) {
var areaCode = ("(" + numbers.slice(0, 4) + ")").replace(/,/g, "");
var prefix = (" " + numbers.slice(3, 6)).replace(/,/g, "");
var lineNum = ("-" + numbers.slice(6)).replace(/,/g, "");
return areaCode + prefix + lineNum;
}

另一种方法是使用 .join('')。 (感谢@nnnnnn)这样我们就可以在函数的开头通过一个 .join 删除所有替换:

function createPhoneNumber(numbers) {
numbers = numbers.join('');
var areaCode = "(" + numbers.substring(0, 4) + ")";
var prefix = " " + numbers.substring(3, 6);
var lineNum = "-" + numbers.substring(6);
return areaCode + prefix + lineNum;
}

替换将搜索生成的字符串中出现的每个逗号,并将它们替换为空字符串(基本上会删除它们)。

要了解更多信息:

Slice

Replace

Substring

Join

关于javascript 错误 : array. 子串不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com