Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

JavaScript - tìm khoảng cách giữa các mục trên mảng


Giả sử chúng ta có mảng số đã sắp xếp (tăng dần) như sau:

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

Cần viết hàm nhận mảng như vậy. Hàm xây dựng mảng con mới cho mỗi phần tử của mảng đầu vào. Mảng con chứa các phần tử hiệu (hiệu giữa phần tử đó và các phần tử kế tiếp từng cái một).

Với phần tử đầu tiên, các hiệu là:

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

Mảng con cho phần tử đầu tiên:

[3, 5, 6, 7]

Tương tự cho phần tử thứ hai:

[2, 3, 4]

Phần tử thứ ba:

[1, 2]

Phần tử thứ tư:

[1]

Vì phần tử thứ năm là cuối cùng không còn phần tử nào, nên không xét.

Đầu ra cho toàn mảng:

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

Ví dụ

Mã thực hiện như sau:

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));

Kết quả

Kết quả trong console sẽ là:

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