【发布时间】:2017-02-28 11:45:17
【问题描述】:
我有一个数组[1,2,3,4,5,6] 和一个分隔符'~',我想将它们连接成一个新数组,'~' 是分隔符。
我希望输出为[1,'~', 2,'~', 3,'~', 4,'~', 5,'~', 6]。
使用Lodash 我得到了类似的东西:
var my_array = [1,2,3,4,5,6]
var separator = '~'
_.flatten(_.zip(my_array, new Array(my_array.length).fill(separator)))
但这感觉很难看,我相信有更好的方法。
编辑:即使上面的数组有 ints 我希望它适用于任何类型的对象。
【问题讨论】:
-
为什么不只是一个漂亮的简单循环?
-
一个漂亮的简单循环就可以解决问题,但需要在长度上使用手动
-1。正在寻找更漂亮的东西。 -
"...但是会强制要求手册的长度为 -1..." 嗯?
-
join是一个很难实现的操作,因为它具有固有的对称性破坏。 -
问题已经结束,但是单行 ES6 将是:
var r = Array.from({ length: (a.length * 2) - 1 }, (v, i) => i % 2 ? s : a[i/2] );其中a是您的数组,s是您的“~”。代码笔:codepen.io/cjke/pen/pejPOQ?editors=0010
标签: javascript lodash