Terse way to intersperse element between all elements in JavaScript array?

前端 未结 16 1002
终归单人心
终归单人心 2020-12-17 09:19

Say I have an array var arr = [1, 2, 3], and I want to separate each element by an element eg. var sep = \"&\", so the output is [1, \"&a

16条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-17 10:16

    In ES6, you'd write a generator function that can produce an iterator which yields the input with the interspersed elements:

    function* intersperse(iterable, separator) {
        const iterator = iterable[Symbol.iterator]();
        const first = iterator.next();
        if (first.done) return;
        else yield first.value;
        for (const value of iterator) {
            yield separator;
            yield value;
        }
    }
    
    console.log(Array.from(intersperse([1, 2, 3], "&")));
    

提交回复
热议问题