在Javascript中不使用for循环的等效函数?
在不使用for循环的情况下,它的等效性是什么 不确定使用什么数组方法在Javascript中不使用for循环的等效函数?,javascript,arrays,for-loop,map-function,Javascript,Arrays,For Loop,Map Function,在不使用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
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]
函数func(x){
变量y=[];
对于(i=0;i两个列表之间没有一对一的映射。但是,可以使用下划线实现相同的映射,例如:
_.flatten(_.map(input, function(item) {
return [item, item];
}));
或
您无法直接映射,但可以将其缩减为新的扩展阵列:
arr.reduce((prev, curr) => prev.concat([curr, curr]), []);
这是没有ES6箭头功能的:
arr.reduce(function(prev, curr) { return prev.concat([curr, curr]); }, []);
我确信否决票是有道理的,但是我能收到关于如何改进这个问题的反馈吗?我没有否决票,但是没有使用
.map()
和对.map()的任何基本描述的研究
的工作原理,甚至看看MDN polyfill的工作原理都会告诉您,使用.map()
是无法实现这一点的。然后,您会发现,两个答案似乎无法用.map()解决问题
独自一人。看起来你只是在寻求一种更简洁的方式来实现你的目标,应该从你的问题中删除.map()
部分,因为这不是一个开始,显然也不是一个要求。有道理,谢谢,编辑问题以不指定映射函数。对于下划线细节,请使用nice answer+1
arr.reduce(function(prev, curr) { return prev.concat([curr, curr]); }, []);