将以下代码从for循环转换为Array#映射

convert the following code from a for-loop to Array#map

本文关键字:转换 Array# 映射 循环 for 代码      更新时间:2023-09-26

我正在处理一个简单的js函数。。。我正在尝试将以下代码从for循环转换为数组#映射在小提琴中提供我的代码。。我在试着学习阵列地图。。

http://jsfiddle.net/newtdms2/

function doubleAll(numbers) {
    var result = [];
    result = numbers.map(function(num) {
        for (var i = 0; i < numbers.length; i++) {
            result.push(numbers[i] * 2)
        }
        return result;
    });
}
module.exports = doubleAll

您不必在map中创建for循环,map将在作为参数传递的数组的每个元素上调用函数回调。所以试一下:

function doubleAll(numbers) {
  return numbers.map(function (num) {
    return num * 2;
  });
}

这是地图方法的文档,你可能会感兴趣!

不需要您的for内部map

function doubleAll(numbers) {
    var result = [];
    result = numbers.map(function(num) {
        return (num * 2);
    });
   return result;
}

更简单的可以是:

function doubleAll(numbers) {    
   return numbers.map(function(num) {
      return (num * 2);
   });
}

Array.prototype.map:将在数组中的每个元素中循环一次。它接收一个回调函数作为参数,回调函数接受三个参数,即第一个2:

  • currentItem:在上述num示例中的数组中正在处理的元素
  • index:数组中正在处理的元素的索引,对于循环,它将是i
function doubleAll(numbers) {
  return numbers.map(num => num*2);
}