如何解决数组在 reduce()、map() 等中可用的原因是什么?
在以下示例中,我们可以通过 numbers
和 arr
访问数组。使用内部变量 arr
似乎更符合函数式编程,但是我们应该使用它而不是外部变量的明确原因是什么,因为 numbers
和 arr
都是无论如何都指向相同的数组值。
const numbers = [1,2,3,4,5];
const sum = numbers.reduce((acc,m,index,arr) => {
console.log(`acc=${acc},m=${m},index=${index},arr=${arr}`);
console.log(`acc=${acc},numbers=${numbers}`);
return acc += m;
},100);
console.log(sum);
解决方法
因为不是每个数组都会存储在一个变量中。您可以链接对 map() 等的调用,或者在调用返回数组的函数之后,在这些情况下,您可以通过变量名访问数组。
functionThatReturnsAnArray(...).map((acc,m,index,arr) => {
// We can only access the array because
//it was passed as an argument to the anonymous function
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。