小编Hap*_*ean的帖子

使用javascript中的reduce方法从数组中删除冗余方向

我有一个问题,我应该从数组中删除冗余方向。例如,如果我有[“N”,“S”,“E”,“W”,“E”],我会返回[“E”],因为北和南抵消,东和西抵消离开东方一号。如果它们相邻,它们就会抵消。如果我有 ['W', 'N', 'S', 'E', 'N'],它会返回 ["N"],因为 N,S 取消,留下 W, E 也取消。我创建了一个有效的函数:

function mapQuest(arr) {
  const directions = { N: 2, S: -2, W: 1, E: -1 };

  for (let i = 0; i < arr.length; i++) {
    while (directions[arr[i]] + directions[arr[i + 1]] == 0) {
      arr.splice(i, 2);
      i = 0;
    }
  }
  return arr;
}

Run Code Online (Sandbox Code Playgroud)

但问题是要求使用javascript中的reduce方法来解决问题。我开始写一个:

function mapQuest(arr) {
  let result = arr.reduce((acc, dir) => acc[dir]++, { N: 0, S: 0, W: 0, E: 0 });
}
Run Code Online (Sandbox Code Playgroud)

但我不知道从这里去哪里以及如何在没有 …

javascript arrays methods reduce

3
推荐指数
1
解决办法
423
查看次数

标签 统计

arrays ×1

javascript ×1

methods ×1

reduce ×1