我想在javascript中用reduce来模拟join函数,代码如下:
function join(arr, separator) {
return arr.reduce((a, item) => (a ? a + separator + item : item), "");
}
但是当我尝试join(['', '', ''], ',')
时,代码产生了''。我不明白为什么我的代码不输出',,'。
我想在javascript中用reduce来模拟join函数,代码如下:
function join(arr, separator) {
return arr.reduce((a, item) => (a ? a + separator + item : item), "");
}
但是当我尝试join(['', '', ''], ',')
时,代码产生了''。我不明白为什么我的代码不输出',,'。
3条答案
按热度按时间vngu2lb81#
您的代码问题是
a-a +分隔符+项目:项目
您正在验证值,但需要验证索引。
想法:
af7jpaap2#
Javascript不会将
''
计算为真实值,因此不会计算表达式a + separator + item
,而总是返回item
。如果输入如下所示的值,代码应该可以正常工作:
join(['a', 'b', 'c'], ',')
。但是,如果您希望join(['', '', ''], ',')
返回为',,,'
,则可以将代码更改为如下所示:rta7y2nd3#
尝试以下给定代码-
在您的代码中,您为reducer函数使用了错误的参数。
第一个arg是reducer函数正在处理的reducer函数的当前结果(可以将其视为内部函数结果的当前累加),第二个arg是当前数组元素。