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

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

Tìm khoảng cách nhỏ nhất giữa các cặp phần tử trùng lặp trong mảng.

Ví dụ: [2,3,4,2,5,4,1,3] → {'2':3, '3':6, '4':3}.

Mã thực hiện

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, i, a) => {
        if (i) acc.push(val - a[i-1]); return acc;
      }, []));
    }
  });
  return res;
};
console.log(findDistance(arr));

Kết quả

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