【发布时间】:2017-05-17 05:00:59
【问题描述】:
我对 JavaScript 的水平相当新。
我有一个函数以y 作为输入来返回一个大小为y 的数组,它具有与元素几乎相同的功能。
这是我的代码:
function createArrayOfFunctions(y) {
var arr = [];
for(var i = 0; i<y; i++) {
arr[i] = function(x) {
return x + i);} //Probably this is the issue
}
return arr;
}
var input = "5,3,2";
var [y, n, m] = input.split(",");
console.log("input = " + input);
[y, n, m] = [parseInt(y), parseInt(n), parseInt(m)]
var addArray = createArrayOfFunctions(y);
console.log(addArray[n](m)); //I would like to add up n and m
当我执行代码时,i 保持在 5 而不是从 0,1,2,3,4 迭代 arr[0],arr[1],arr[2],arr[3], arr[4]。结果,它总是输出m+y 而不是n+m。我曾尝试使用indexOF 和this[i] 来找出函数的索引,但它不起作用。我有什么方法可以做到这一点吗?
谢谢!
【问题讨论】:
-
您能否清楚地说明输入和预期输出是什么?
标签: javascript arrays