小编bha*_*rty的帖子

测试在 Javascript 中使用 reduce() 时是否到达数组的最后一项

我正在尝试实现相当于在executeprogram.com上回答测验的.join()功能。我的代码通过了测试,但看起来很难看。我以丑陋的方式解决的具体问题是:构造的函数采用数组和分隔符作为参数,但在构造结果连接输出时,不应将分隔符插入到数组的最后一项之后。这意味着我必须测试,当使用 迭代数组时,我是否位于最后一项(以便我可以跳过使用分隔符)[哎呀:请参阅下面的注释]。如果数组中存在重复值,则使用or不起作用。所以我创建了一个计数器。我不喜欢它。我希望得到有关如何做得更好的建议。这是代码:.reduce()join()reduce()indexOflastIndexOf

 function join(arr, separator) {
  let counter = 0;
  if (arr.length === 0) { return(''); }
  else { 
    return (
    arr.reduce((accumulator, item) =>
      {
        if (counter === arr.length - 1) {
          return accumulator + item;
        } else {
          counter += 1; 
          return accumulator + item + separator;
        }
      }, 
      '')
    );
  }
} 
Run Code Online (Sandbox Code Playgroud)

测试及其预期输出如下。同样,上面的函数通过了所有测试,但我认为必须有更好的方法。

> join(['a'], ',')
Expected: 'a'
> join(['a', 'b'], ',')
Expected: 'a,b' 
> …
Run Code Online (Sandbox Code Playgroud)

javascript arrays reduce

6
推荐指数
2
解决办法
7803
查看次数

标签 统计

arrays ×1

javascript ×1

reduce ×1