Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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函数从数组创建新对象时无法获得正确的结果_Javascript_Ecmascript 2016 - Fatal编程技术网

Javascript 使用reduce函数从数组创建新对象时无法获得正确的结果

Javascript 使用reduce函数从数组创建新对象时无法获得正确的结果,javascript,ecmascript-2016,Javascript,Ecmascript 2016,这是我的尝试,我尝试从数组值创建一个新对象,但得到的结果是:two而不是新对象。有人能帮我清楚地理解reduce函数吗 const arr=['one','two'] 函数fn(){ 返回arr.reduce((obj,val)=>obj[val]=val,{}); } console.log(fn()); //应为:{one:'one',two:'two}但得到'two'您的函数返回val(最后处理的元素),而不是obj(累加器),请尝试: const arr=['one','two']

这是我的尝试,我尝试从数组值创建一个新对象,但得到的结果是:
two
而不是新对象。有人能帮我清楚地理解reduce函数吗

const arr=['one','two']
函数fn(){
返回arr.reduce((obj,val)=>obj[val]=val,{});
}
console.log(fn());
//应为:{one:'one',two:'two}但得到'two'
您的函数返回
val
(最后处理的元素),而不是
obj
(累加器),请尝试:

const arr=['one','two']
函数fn(){
返回arr.reduce((obj,val)=>{obj[val]=val;返回obj;},{});
}
console.log(fn())
您的函数返回
val
(上次处理的元素)而不是
obj
(累加器),请尝试:

const arr=['one','two']
函数fn(){
返回arr.reduce((obj,val)=>{obj[val]=val;返回obj;},{});
}
console.log(fn())