Javascript 中不使用 for 循环的等效函数?

Equivalent function without using a for loop in Javascript?

如果不使用 for 循环,这相当于什么?

不确定使用什么数组方法

function func(x){
    var y = [];
    for(i=0;i<x.length;i++){
        y.push(x[i]);
        y.push(x[i]);
    }
    return y;
}

var input = [1,2,3,4,5,6];

console.log(func(input));// returns [1,1,2,2,3,3,4,4,5,5,6,6]

您的两个列表之间没有一对一的映射。但是,您可以使用下划线实现相同的效果,例如:

_.flatten(_.map(input, function(item) {
  return [item, item];
}));

_.chain(input)
  .map(function(item) {
    return [item, item];
  })
  .flatten()
  .value();

不能直接映射,但可以缩减为新的扩展数组:

arr.reduce((prev, curr) => prev.concat([curr, curr]), []);

而且这是没有 ES6 箭头函数的:

arr.reduce(function(prev, curr) { return prev.concat([curr, curr]); }, []);