gpt4 book ai didi

javascript - 为什么我们不能将 Array.prototype.concat 直接提供给 reduce?

转载 作者:搜寻专家 更新时间:2023-11-01 05:28:35 25 4
gpt4 key购买 nike

这里是 JavaScript 新手。今天我学习了 reduce 并着手实现我自己的数组展平函数。

我得到的是

var array = [[1, 2], [3, 4, 5], [6]];
var result = array.reduce(Array.prototype.concat, []); // Causes Uncaught TypeError: Array.prototype.concat called on null or undefined
var result = array.reduce(Array.prototype.concat.call, []); // Causes Uncaught TypeError: undefined is not a function

同时在 Merge/flatten an array of arrays in JavaScript? 中回答是优雅和惯用的,我真的很感激能说明我的尝试是如何失败的。

最佳答案

你的代码等同于

result = array.reduce(fn, []);
function fn(a, b, index, array) { // this is the arguments reduce sends to the callback
return Array.prototype.concat.call(null, a, b, index, array);
}

你能发现问题吗?

关于javascript - 为什么我们不能将 Array.prototype.concat 直接提供给 reduce?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com