Javascript 如何将数组元素值加倍

Javascript 如何将数组元素值加倍,javascript,functional-programming,Javascript,Functional Programming,我有数组元素,我正在尝试仅使用过滤器方法(而不是映射)乘以2。我期望的输出类似于[2,4,6,8,10]。这是我的代码 var array = [1,2,3,4,5]; array.filter( val => val * 2); 不是,在这种情况下,您应该使用map函数 var array = [1,2,3,4,5]; array = array.map(function(val){return val*2;}); console.log(array); 尝试使用此 var

我有数组元素,我正在尝试仅使用过滤器方法(而不是映射)乘以2。我期望的输出类似于[2,4,6,8,10]。这是我的代码

  var array = [1,2,3,4,5];
  array.filter( val => val * 2);
不是,在这种情况下,您应该使用
map
函数

var array = [1,2,3,4,5];
array = array.map(function(val){return val*2;});
console.log(array);

尝试使用此

 var new_array = array.map(function(e) { 
      e = e*2; 
      return e;
    });

只使用过滤方法。。。您可以尝试像迭代器一样使用它(请注意,这不是应该使用过滤器的方式):


这很难看,但如果您只能使用
过滤器

您首先需要了解
映射
过滤器
减少
的功能

根据您的要求,它应该是
map
的功能,但您需要
filter
,这并不明显

地图:

When you call map on an array, it executes that callback on every 
element within it, returning a new array with all of the values 
that the callback returned.
过滤器

filter executes that callback on each element of the array, and spits
out a new array containing only the elements for which the callback returned true.
let items=['1','2','3','4','5'];
让number=items.map(item=>item*2);
控制台日志(项目);

控制台日志(编号)如果您真的想使用filter(),您可以:

Array.prototype.filter = Array.prototype.map
var array = [1,2,3,4,5];
array.filter( val => val * 2);
但是请不要

var numList = [1, 2, 3, 4, 5, 6, 7,8 ];

var doubleUp = (array) => array.map(item=>item*2);

console.log(doubleUp(numList));
//返回 [ 2, 4, 6, 8, 10, 12, 14, 16
]

是的,最简单的方法是使用地图,但我有兴趣尝试使用过滤器。否。你不应该使用过滤器。这不是过滤器的工作方式。这只是为了过滤。我想你需要阅读过滤方法的概念。为什么您必须只使用
过滤器
方法?您是在问我们如何使用冰箱烹饪。
var numList = [1, 2, 3, 4, 5, 6, 7,8 ];

var doubleUp = (array) => array.map(item=>item*2);

console.log(doubleUp(numList));