你可能不知道的js数组toString()

20 阅读1分钟

你可能不知道的js数组toString()

普通数组

我们先看一个数组

const arr = [1,2,3,4,5];

如果转化为字符串呢?我们使用toString方法试一下

const arr = [1,2,3,4,5];
console.log(arr.toString());

image.png

这里输出字符串1,2,3,4,5,为什么没有显示""呢?

验证结果是否是字符串

const arr = [1,2,3,4,5];
let result = arr.toString();
console.log(result);
console.log(typeof(result));

image.png

结果显示是字符串

这是因为在大多数编程环境中,当直接打印字符串值时,引号被视为字符串的定界符(用来标识字符串的开始和结束),而不是字符串内容的一部分,所以不会在输出中显示。

嵌套数组

如果是嵌套数组toString呢

const arr = [1,[2,3,[4,[5]]]];
let result = arr.toString();
console.log(result);
console.log(typeof(result));

image.png

我们发现它解开了嵌套!

  • 当 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]]]"