Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重写reduce方法js的问题_Javascript_Ecmascript 6 - Fatal编程技术网

Javascript 重写reduce方法js的问题

Javascript 重写reduce方法js的问题,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在尝试重写reduce方法 我有几件事我不确定。首先,它给出了错误的结果,我不知道为什么。其次,如果我没有将reducez函数指定给const或let函数,则会出现错误 下面的代码给出了一个错误 无法读取未定义的属性“ReduceUez” 有人知道这是为什么吗 [1,2,3].reduceuez((a,b)=>{ 返回a+b; }); 这是我试图编写reduce方法的实际代码 Array.prototype.reducez=函数(回调){ 让initialValue=0; for(设i=

我正在尝试重写
reduce
方法

我有几件事我不确定。首先,它给出了错误的结果,我不知道为什么。其次,如果我没有将
reducez
函数指定给
const
let
函数,则会出现错误

下面的代码给出了一个错误

无法读取未定义的属性“ReduceUez”

有人知道这是为什么吗

[1,2,3].reduceuez((a,b)=>{
返回a+b;
});
这是我试图编写
reduce
方法的实际代码

Array.prototype.reducez=函数(回调){
让initialValue=0;
for(设i=0;i{
返回a+b;
});
控制台日志(y);//这是11,应该是6
应该是

initialValue = callback(this[i], initialValue)
因为当您在每次回调后追加值时,initalValue的值会被添加两次,一次是在回调中,一次是由于+=

Array.prototype.reducez=函数(回调){
让initialValue=0;
for(设i=0;i{
返回a+b;
});

控制台日志(y);//这是11,应该是6
nice,reduce方法就这么简单。除了附加的初始值等?另外,为什么它不工作,除非我分配给一个变量?它也可以工作,而不分配给变量,但在每次迭代中,它必须为累加器设置一个值,以便您可以直接返回或使用一个变量。如果你理解它背后的概念,那就很容易了!我的意思是,如果删除
常量
,就会出现错误。这不会发生在你身上吗?在这种情况下会有。我一直在考虑实际的reduce函数,如果它向上回答了您的问题,并将其标记为正确,这样它就可以帮助其他人。该问题的代码没有签名。@guest271314这是什么意思?需要更多的争论?你想达到什么目的?是否希望reduce方法返回数组中的项目总数?@peterflanagan问题表明代码正在尝试重写
array.prototype.reduce()
,但与规范不符。有关
.reduce()
的polyfill和实际规范第一条注释处的链接,请参阅。我也被
未定义的
错误弄糊涂了。
initialValue = callback(this[i], initialValue)