Computer >> Máy Tính >  >> Lập trình >> Javascript

Khoảng cách giữa 2 số trùng lặp trong JavaScript mảng

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng số chứa ít nhất một cặp số trùng lặp.

Hàm của chúng ta sẽ trả về khoảng cách giữa tất cả các cặp số trùng lặp tồn tại trong mảng.

Mã cho điều này sẽ là -

const arr = [2, 3, 4, 2, 5, 4, 1, 3];
const findDistance = arr => {
   var map = {}, res = {};
   arr.forEach((el, ind) => {
      map[el] = map[el] || [];
      map[el].push(ind);
   });
   Object.keys(map).forEach(el => {
      if (map[el].length > 1) {
         res[el] = Math.min.apply(null, map[el].reduce((acc, val, ind, arr) => {
            ind && acc.push(val - arr[ind - 1]);
            return acc;
         }, []));
      };
   });
   return res;
}
console.log(findDistance(arr));

Sau đây là kết quả trên bảng điều khiển -

{ '2': 3, '3': 6, '4': 3 }