在Javascript中,为什么要用split来定义数组呢?
In Javascript, why define an array with split?
我经常看到人们使用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']
没有什么区别,如果有什么区别的话,那只是糟糕的练习和懒惰。我能想到使用第一种方法的唯一原因是,如果数据自然地以字符串形式出现,并且使用数组字面量会使其完全不可读。
相关文章:
- Join架构验证:Join.object定义数组中的有效键
- 在定义数组后填充数组
- 带有自定义数组的迷你图
- 函数中的Javascript未定义数组
- 如何在Angular中设置异步HTTP服务的回调,以便在不定义数组的情况下在控制器中填充数组
- Javascript-自定义数组不起作用
- 在自定义数组 JavaScript 中创建具有未知数量输入的 JSON
- Javascript 自定义数组原型
- 如何在服务中定义数组并在 AngularJS 中的 2 个控制器之间共享它
- 自定义数组函数不接受参数
- 为什么不能映射“未定义”数组
- 使用原型的自定义数组函数.新的 MyArray(1,2,3,4) 不工作
- 确定猫鼬中空数组和未定义数组之间的区别
- 在Google脚本中定义数组
- 如何在JavaScript中重新定义数组上的+运算符
- 未定义数组值
- Javascript自定义数组按数组排序
- JavaScript定义数组大小并从另一个数组进行克隆
- 未捕获的类型错误:无法读取属性'长度'的未定义(数组)
- Javascript〔remove:function〕记录自定义数组CQ-Ext-js