你可能不知道的js数组toString()
普通数组
我们先看一个数组
const arr = [1,2,3,4,5];
如果转化为字符串呢?我们使用toString方法试一下
const arr = [1,2,3,4,5];
console.log(arr.toString());
这里输出字符串1,2,3,4,5
,为什么没有显示""
呢?
验证结果是否是字符串
const arr = [1,2,3,4,5];
let result = arr.toString();
console.log(result);
console.log(typeof(result));
结果显示是字符串
这是因为在大多数编程环境中,当直接打印字符串值时,引号被视为字符串的定界符(用来标识字符串的开始和结束),而不是字符串内容的一部分,所以不会在输出中显示。
嵌套数组
如果是嵌套数组toString呢
const arr = [1,[2,3,[4,[5]]]];
let result = arr.toString();
console.log(result);
console.log(typeof(result));
我们发现它解开了嵌套!
-
当
toString()
方法应用于嵌套数组时,它会递归地将所有元素转换为字符串,并用逗号连接 -
数组
[1,[2,3,[4,[5]]]]
被处理为:-
1
转换为"1"
-
[2,3,[4,[5]]]
被进一步处理:-
2
转换为"2"
-
3
转换为"3"
-
[4,[5]]
被进一步处理:4
转换为"4"
[5]
被转换为"5"
-
得到
"2,3,4,5"
-
-
最终结果是
"1,2,3,4,5"
-
所以这里要注意,结果不是"1,\[2,3,\[4,\[5]]]"