2 回答
TA贡献1786条经验 获得超11个赞
数组的每个元素都需要是一个返回其在数组中当前索引的函数:
var x = 2,
fns = [];
(function() {
var x = 5;
for (let i = 0; i < x; i++) {
fns[i] = () => i;
}
})();
// DO NOT MODIFY BELOW CODE
console.log(x * 2 === fns[x * 2]());
// console must show true
确保用 , let
not声明索引变量var
(var
有问题)。
或者,更实用的是:
const fns = Array.from(
{ length: 5 },
(_, i) => () => i
);
let x = 2;
// DO NOT MODIFY BELOW CODE
console.log(x * 2 === fns[x * 2]());
// console must show true
TA贡献1865条经验 获得超7个赞
您需要一个带有 IIFE 的闭包来获取该值。
var x = 2,
fns = [];
(function() {
var x = 5;
for (var i = 0; i < x; i++) {
fns[i] = function (v) {
return function () { return v; };
}(i);
}
})();
// DO NOT MODIFY BELOW CODE
console.log(x * 2 === fns[x * 2]());
// console must show true
添加回答
举报