在Javascript中,字符串是数组。 join("glue")
使用粘合剂连接数组。那么为什么这不起作用呢?
"abcdefg".join("-");
预期输出:a-b-c-d-e-f-g
实际输出:Uncaught TypeError: string.join is not a function
答案 0 :(得分:3)
字符串不是数组,当然它们的行为与那些一样,但它们不是数组。
为了让您的代码片段正常工作,您需要"分割"你的字符串变成了一个块数组。
也许这个片段可以解决问题。
"abcdef".split('').join('-');
注意我是如何在.join
调用和对象(在本例中为静态字符串"abcdef"
)之间插入.split
方法调用(也注意其参数,这意味着使用每个字符)
使用.split
将字符串INTO转换为纯数组,然后您可以使用.join
方法。
查看MDN文档:
答案 1 :(得分:0)
试试这个:
"abcdefg".split('').join('-');
答案 2 :(得分:0)
在join之前将字符串转换为字符数组。
"abcdefg".split("").join("-")
答案 3 :(得分:0)
如其他答案所示,字符串不是数组。但是 可以使用call
在字符串上使用数组方法。
"abcdefg".join("-"); // fails with typeerror
但你可以这样工作:
Array.prototype.join.call("abcdefg", "-"); // works
以这种方式使用call
将成功运行join()
字符串文字"abcdefg"
并以-
作为粘合剂。