javascript - 返回函数使用闭包返回数组值
问题描述
我正在尝试在 JS 中使用 Closure 来声明一个名为的函数,该函数**expandArray()**
包含一个名为**myArray**
并返回一个匿名函数,该函数通过将值增加 1 而不是返回的函数然后返回的值来直接修改myArray**myArray**
。我的问题是返回函数返回函数而不是数组值的最后一部分?!
这是我的代码
function expandArray() {
const myArray = [1, 1, 1];
return function () {
myArray.forEach( function (num, index, myArray) {
myArray[index] = num + 1;
});
return myArray;
};
}
console.log(expandArray());
解决方案
作为它的闭包,你只调用了一次 like expandArray()
,它返回函数本身,它在下面
ƒ () {
myArray.map( function (num, index, myArray) {
myArray[index] = num + 1;
});
return myArray;
}
you need to invoke it again to get your result back
如下
expandArray()() //[2, 2, 2]
推荐阅读
- ios - ObjectiveC 使用 XIB 单元格在 tableview 中使用并以编程方式将视图从左到右转换为阿拉伯语
- r - R中不同包的均值漂移聚类中的不同带宽规范
- ios - XamForms.Controls.Calendar 特殊日期文本模糊
- c# - Mvc 从服务器端取消 Jquery Ajax 请求
- c# - 无法从剪贴板中检索图像
- vue.js - 如何将 VueComponent 传递给 $vuetify.goTo() 方法?
- ios - 适当的更改不会影响 tableview 部分标题背景
- java - 如何在pdf文件中捕获表格
- automated-tests - 如何在机器人框架自动测试中使用对 POST 请求的响应
- apache-nifi - 如何在apache nifi中拆分输入json数组