为什么join()不能处理字符串?
Why doesn't join() work on strings?
在Javascript中字符串是数组。join("glue")
用胶水连接数组。那么为什么这不起作用呢?
"abcdefg".join("-");
期望输出:a-b-c-d-e-f-g
实际输出:Uncaught TypeError: string.join is not a function
字符串不是数组,当然它们的行为类似于数组,但它们不是数组。
为了让你的代码片段工作,你需要将你的字符串"分割"成一个块数组。
也许这段代码可以解决这个问题。
"abcdef".split('').join('-');
请注意我如何在.join
调用和对象(在本例中为静态字符串"abcdef"
)之间插入.split
方法调用(还注意它的参数,这意味着使用每个字符)。
使用.split
将字符串转换为纯数组,然后您可以使用.join
方法。
查看MDN Docs:
<Array>.join
<String>.split
试试这个:
"abcdefg".split('').join('-');
在连接前将字符串转换为字符数组
"abcdefg".split("").join("-")
如其他答案所示,字符串不是数组。然而,可以使用call
对字符串使用数组方法。
"abcdefg".join("-"); // fails with typeerror
但是你可以让它这样工作:
Array.prototype.join.call("abcdefg", "-"); // works
以这种方式使用call
将成功地在字符串字面值"abcdefg"
上运行join()
, -
作为粘合剂。
相关文章:
- Javascript eval()无法处理传递的字符串
- 如何更改:包含以处理精确的字符串
- 将 JSON 对象转换为序列化字符串以进行服务器端处理
- 使用parseInt将整数值添加到字符串中,而不处理动态添加的内容
- 如何使用promise正确处理express.js中的错误(字符串或对象)
- 如果处理字符串值的文本区域是只读的,如何使用 JavaScript 在虚拟键盘上使用 CAPSLOCK 功能
- 在C#中处理字符串化的JS对象
- 在javascript中处理字符串、数字或两者时应该使用什么排序算法
- Javascript数字比较操作符是如何处理字符串的
- JQuery在MVC 5中可以很好地处理整数,但不能处理字符串
- 处理字符串中的单/双引号
- Javascript排序不能正确处理字符串
- 如何在jQuery mobile中处理字符串本地化
- 处理字符串- JavaScript
- Node.js /browserify require()不能处理变量,但可以处理字符串字面值
- 你能用Jquery处理字符串中的数字吗
- 如何处理字符串中的撇号和引号转换
- 如何处理字符串中的一些 HTML 标记(不是全部)
- 为什么join()不能处理字符串?
- 当将定位引入方程时,如何处理字符串长度约束