直奔主题吧,楼主是做 Node.js 的,培训实习生的时候有一个实习生写了这么个算法:
/**
* 将任意类型元素的数组转化成字符串数组
* @param {Array} theArray
* @returns {String[]}
*/
function toStringArray(theArray) {
if (theArray.length > 0) {
return theArray
.toString()//将数组整个转化成字符串,如[1,2]在 toString 之后会变成'1,2'
.split(',');//将上面返回的字符串,以','为分界分割成字符串数组
} else {
/**
* 如果数组的长度为 0,没必要做任何处理,则直接返回原数组
*/
return theArray;
}
}
考虑到这个频道里可能有些朋友不是很熟悉 JavaScript,所以我优化了一下写法,并增加了一些注释,希望尽可能讲明白这个算法思想是什么。
通常肯定是循环处理数组中每个元素,然后每个元素转成字符串,最终生成一个新数组。 直观上觉得学员的算法不妥,但一时又无法从脑海深处挖掘出究竟问题出在哪,觉得直接向学员宣判这种为错误算法也不好,最好让他能知其所以然。
故在此抛砖引玉,请有想法的朋友各抒己见。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.