【问题标题】:In JS map() method, why can't callback function parameters compute with each other? [duplicate]JS map() 方法中,为什么回调函数参数不能相互计算? [复制]
【发布时间】:2020-12-01 21:40:39
【问题描述】:

问题是我无法使用 array.prototype.map() 方法从其元素(数字)中减去数组的每个索引。我希望减法有效,但事实并非如此。

代码如下:

const whiteSp = [ 5, 11 ];
whiteSp.map(function (ele, i) {
        console.log(ele, i) // 5 0, 11 1
        console.log(ele - i) // 5, 10
        ele = ele - i;
         return ele;
    });
    console.log(whiteSp) // expected [ 5, 10 ], but got [ 5, 11 ]

第二个console.log 表明计算已经完成,如值10 所示,但由于某种原因返回11。

我也试过'return ele - i'没有上面那行,但还是不行。

【问题讨论】:

    标签: javascript arrays array.prototype.map


    【解决方案1】:

    Ciao,你可以试试这样的:

    let whiteSp = [ 5, 11 ];
    whiteSp = whiteSp.map((ele, i) => { return ele - i; });
    console.log(whiteSp)

    请记住,map 函数返回一个新数组,因此您必须执行 whiteSp = whiteSp.map...。

    【讨论】:

    • (ele, i) => { return ele - i; } === (ele, i) => ele - i
    • 随你喜欢。我更喜欢使用return 声明。它帮助我更快地了解我在map 中所做的事情。当然这是一个小例子,但总的来说我在map函数中写了一些更复杂的东西。
    【解决方案2】:

    您需要分配映射值。

    const
        whiteSp = [5, 11],
        result = whiteSp.map((ele, i) => ele - i);
    
    console.log(result);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-27
      • 2014-07-21
      • 2019-05-08
      • 2010-11-28
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多