순회하는 리스트

WooBuntu·2020년 8월 30일
0

JS 100제

목록 보기
14/34

순회하는 리스트

const l = [10, 20, 25, 27, 34, 35, 39];
const n = 2;
function rotate(inL, inN) {
  let newL = inL.slice();
  for (let i = 0; i < inN; i++) {
    newL.unshift(newL.pop());
  }
  const diff = newL.map((el, idx) => Math.abs(el - l[idx]));
  function reduceHelper({ idx, min }, cur, index, origin) {
    if (cur < min) {
      min = cur;
      idx = index;
    }
    if (index == origin.length - 1) {
      return { idx, origin: l[idx], rotated: newL[idx] };
    }
    return { idx, min };
  }
  return diff.reduce(reduceHelper, { idx: null, min: Infinity });
}

0개의 댓글