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]); }, []);
如果不使用 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]); }, []);