我想使用reduce
函数而不是这样做:
var result = '';
authors.forEach(
function(author) {
result += author.name + ', ';
}
);
console.log(result);
所以在数组authors
中有几个名字。现在我想用这个名字构建一个字符串,用逗号分隔(最后一个除外)。
var result = authors.reduce(function (author, index) {
return author + ' ';
}, '');
console.log(result);
7条答案
按热度按时间3htmauhk1#
一系列的答案刚刚进来,这里是一个更多!
第一个选择是使用原生的js join方法,这样就不需要reduce了。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
重要-如果你的数组包含对象,那么你可能需要在加入之前Map它:
或者,如果你真的很想使用reduce,只要确保在传入回调函数时使用前一个值、当前值和索引即可。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
重要-同样,如果你的数组包含对象,那么你需要确保你使用的是'name property':
iyfamqjs2#
对,所以它是一个对象。让我们首先Map名称:
mefy6pfw3#
您正在重新创建join()
如果要使用Reduce,请添加if检查
因为我错过了让人们高兴的Map部分...
或
dfddblmv4#
我也遇到了这个。这些答案中的大多数都没有考虑到你想要作者的名字,这意味着你有一个对象数组。
一行解决方案:
91zkwejq5#
试试这个:
oiopk7p56#
这里是一个“Python Like”方法,使用数组或Object在一行中构建字符串。
希望这能帮上忙。干杯
sxpgvts37#
我将添加我的2美分,这里有两个选项,通过map或使用三元运算符: