在Javascript中,为什么要用split来定义数组呢?

In Javascript, why define an array with split?

本文关键字:定义 数组 split Javascript 为什么      更新时间:2023-09-26

我经常看到人们使用split方法定义填充数组的代码,如下所示:

var colors = "red,green,blue".split(',');

这与

有何不同?
var colors = ["red","green","blue"];

只是为了避免必须引用每个值吗?

分割字符串是一种糟糕的创建数组的方式。这种方法存在几个问题,包括性能、稳定性和内存消耗。它需要CPU时间来解析字符串,它很容易出错(字符串中的双逗号,空格等),并且意味着您的脚本实际上必须在内存中存储两倍的数据。

这不是一个好主意,很可能只是某人在第一次学习字符串和数组时养成的一个坏习惯。或者他们想要变得聪明,以便进行某种编码练习。

根据经验,只有当您从外部源读取字符串数据并需要将其转换为本机类型时,才应该将字符串解析为数组。如果你已经提前知道了这些值,你应该自己创建数组。

有人这样做的一个可能原因是为了减少源代码中的字符数量,以带宽换取性能。'a,b,c,d,e,f,g'.split(',')的字符数少于['a','b','c','d','e','f','g']

没有什么区别,如果有什么区别的话,那只是糟糕的练习和懒惰。我能想到使用第一种方法的唯一原因是,如果数据自然地以字符串形式出现,并且使用数组字面量会使其完全不可读。