javascript - 为什么 [,,].join(' ') 长度比数组长度小一?
问题描述
string
连接产生的长度背后的原因是什么var arr = [,,]
,例如:var str = arr.join(' ')
比长度少一arr
。
var literal_arr = [,,],
joined_literal_arr = literal_arr.join(' '),
constructor_arr = new Array(2),
joined_constructor_arr = new Array(2).join(' ');
console.log("Literal array notation length = ", literal_arr.length);
console.log("Joined literal array notation string length = ", joined_literal_arr.length);
console.log("Constructor array notation length = ", constructor_arr.length);
console.log("Joined constructor notation string length = ", joined_constructor_arr.length);
解决方案
根据MDN 文档:
如果元素未定义或为 null,则将其转换为空字符串。
在您的情况下,您正在创建一个没有任何值的具有特定长度的数组(它将是undefined
)。所以在加入时会有length - 1
分隔符(因为undefined
已经被视为空字符串)意味着length - 1
空格(' '
)。
推荐阅读
- jmeter - Gitlab ci- 报告 jmeter 测试失败
- java - 在 Java 中可靠地测试执行时间
- java - Spring-Data-Jpa 中一对多映射的 JSON 结果错误
- react-native-maps - 覆盖组件的 React Native Maps 问题
- java - 从 Android 获取 gps 位置
- angular6 - 解析错误:App Initializer 中的循环依赖
- python-3.x - dnspython3 从 A 记录中删除主机
- tensorflow - Eager Execution 是否旨在取代 tensorflow 会话方法?
- r - 将闪亮的小部件输入值分配给矩阵/数据框
- fluentd - 从日志行中提取流利配置中的值以用作输出参数值的方法?