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 ] ]
廣告