在数组内的所有元素之间插入值的功能方法

Enr*_*ent 5 javascript arrays functional-programming

假设我有以下数组:

const myArray = ["q", "w", "e", "r", "t", "y"]
Run Code Online (Sandbox Code Playgroud)

我想做的是在所有元素之间添加一个元素,如下所示:

myArray.someMethod("XXX")
// ["q", "XXX", "w", "XXX", "e", "XXX", "r", "XXX", "t", "XXX", "y"]
Run Code Online (Sandbox Code Playgroud)

在某种程度上,它有点什么.join,但我希望输出是另一个数组,而不是字符串.

我知道如何用循环来做这个,但我想知道实现这个的"功能"方法.

Nin*_*olz 6

您可以通过使用rest参数和检查其余数组的长度来采用递归方法,而不是迭代方法.

const
    zip = ([a, ...r], v) => r.length ? [a, v, ...zip(r, v)] : [a];

console.log(zip(["q", "w", "e", "r", "t", "y"], 'XXX'));
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)