我确实有情况
let values = [{value: "one"}, {value: "two"}];
let joinedValues = values.reduce(function(p, n) {return `${p.value},
${n.value}`});
let values2 = [{value: "one"}];
let joinedValues2 = values2.reduce(function(p, n) {return `${p.value}, ${n.value}`});
console.log(joinedValues);
console.log(joinedValues2);
那个时候数组length > 1
进行迭代并返回给我连接的值,但是当length === 1
时它根本不会进行迭代并直接返回值对象。
因此,如何从上面的示例数组仅使用reduce 中获得逗号分隔的字符串。
注意: 我无法预测动态的初始值。
答案 0 :(得分:0)
您没有传递reduce
的第二个参数。
代码应该像这样
let values = [{value: "one"}, {value: "two"}];
let joinedValues = values.reduce(function(p, n) {return `${p}, ${n.value}`}, '');
let values2 = [{value: "one"}];
let joinedValues2 = values2.reduce(function(p, n) {return `${p}, ${n.value}`}, '');
console.log(joinedValues);
console.log(joinedValues2);
和reduce中的函数接收2个参数。第一个用于上一个值,第二个用于当前值。