Javascript 数组reduce不能在长度为1的情况下工作在给定情况下我如何处理?

Javascript 数组reduce不能在长度为1的情况下工作在给定情况下我如何处理?,javascript,reduce,Javascript,Reduce,我确实有个情况 let values=[{value:“一”},{value:“两”}]; 让joinedValues=values.reduce(函数(p,n){return`${p.value}, ${n.value}`}); 让values2=[{value:“one”}]; 让joinedValues2=values2.reduce(函数(p,n){return`${p.value},${n.value}}}); console.log(joinedValues); console.l

我确实有个情况

let values=[{value:“一”},{value:“两”}];
让joinedValues=values.reduce(函数(p,n){return`${p.value},
${n.value}`});
让values2=[{value:“one”}];
让joinedValues2=values2.reduce(函数(p,n){return`${p.value},${n.value}}});
console.log(joinedValues);

console.log(joinedValues2)您没有通过
reduce
的第二个参数

代码应该是这样的

let values=[{value:“一”},{value:“两”}];
让joinedValues=values.reduce(函数(p,n){return`${p},${n.value}`},');
让values2=[{value:“one”}];
让joinedValues2=values2.reduce(函数(p,n){return`${p},${n.value}`},');
console.log(joinedValues);
console.log(joinedValues2);

reduce中的函数接收2个参数。第一个用于前一个值,第二个用于数组的当前元素。

如果未提供起始值,则返回长度为1的数组的唯一项。三个项目的结果是什么?您的回调和没有起始值的外部结构是两个项目的高度自定义构建。有什么原因您不以最明显的方式解决这个问题吗?为什么要使用
.reduce()
?最明显的方法是
values.map(x=>x.value).join(“,”)
你真的想为空数组获取一个异常吗?@Bergi AFAIK如果你在
中提供一个没有初始值的空数组,它确实会抛出一个错误。reduce
在这种情况下,它会返回“一,二”@ShubhanuSharma在我可以回答之后,重复投票,但您必须添加一个三元运算符:
function(p,n){return(p?`${p},${n.value}`:`${n.value}}}
或执行一个简单的
values.map(o=>o.value).连接(',')