小编sam*_*610的帖子

将返回值推送到JavaScript中的数组中

我在循环中有一个函数,它在每次迭代中更改它的返回值,我想在函数中保存函数的所有返回值.

这段代码有什么问题:

function riddle() {
    var a = [];
    for (var i = 0; i < 10; i++) {
        a.push(function() {
            return i * i;
        });
    }
    return a;}

// code to test your solution: 

var a = riddle();
var b = [];
for (var i = 0; i < a.length; i++) { b.push(a[i]()); }
console.log(b);
Run Code Online (Sandbox Code Playgroud)

这应该打印:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

但相反,我得到了这个:

[100, 100, 100, 100, 100, 100, 100, 100, 100, 100]

javascript

1
推荐指数
1
解决办法
626
查看次数

标签 统计

javascript ×1