JavaScript - 查詢陣列中元素之間的距離


假設我們有一個按升序排序的數字陣列:

const arr = [2, 5, 7, 8, 9];

我們需要編寫一個 JavaScript 函式,它接收這樣一個數組作為輸入。該函式應該為輸入陣列的每個元素構造一個新的子陣列。

子陣列應包含差值(該元素與後續元素之間的差值,一個接一個)。

因此,對於第一個陣列元素,差值為:

5 - 2 = 3
7 - 2 = 5
8 - 2 = 6
9 - 2 = 7

因此,第一個元素的子陣列應該是:

[3, 5, 6, 7]

類似地,對於第二個元素,它應該是:

[2, 3, 4]

對於第三個元素:

[1, 2]

第四個:

[1]

由於第五個是最後一個元素,因此沒有剩餘的元素與之比較,所以我們不考慮最後一個元素。

因此,整個陣列的輸出應該是:

const output = [
   [3, 5, 6, 7],
   [2, 3, 4],
   [1, 2],
   [1]
];

示例

程式碼如下:

const arr = [2, 5, 7, 8, 9];
const distanceBetween = (arr,r = []) => {
   if(r.length <= arr.length-2) {
      let temp = [];
      let b = arr[r.length];
      arr.forEach(e => temp.push(e - b));
      r.push(temp.filter(e => e > 0));
      return distanceBetween(arr,r);
   } else {
      return r;
   };
}
console.log(distanceBetween(arr));

輸出

控制檯輸出將是:

[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]

更新於:2020年11月25日

263 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告