0w0

Change Array by Copy Status Stage3

자바스크립트는 왜 그모양일까를 비롯해서 여러 글에 꼭 언급되는 말이 있습니다.

sorting은 순수했어야한다.

소식

아무래도 이제 곧 개선된 sorting 기능를 만날 수 있을지도 모릅니다.

제안은 stage3입니다.

주 용도는 다른 수법을 사용할 필요도 없이 안전하게 본 배열을 지키는 것 같습니다.

아이디어는 Tuple.prototype에서 시작했으며, 이름처럼 불변에 관한 기능입니다.

제안은 저자도 같기에 연관성도 깊습니다.

  1. Array.prototype.with()
// 기존
const arr = [42, 72, 0];
a.at('1.9'); // 72
a[50] = 4; // a.length === 51

// 제안
const correctionNeeded = [1, 1, 3];
correctionNeeded.with(1, 2); // => [1, 2, 3]
correctionNeeded.with('1.9', 2); // [42, 72, 0]
correctionNeeded; // => [1, 1, 3]
  1. Array.prototype.toReversed()
// 기존
const arr = [5, 3, 2];
arr.reverse(); // [2, 3, 5]
arr; // [2, 3, 5]

// 제안
const sequence = [1, 2, 3];
sequence.toReversed(); // => [3, 2, 1]
sequence; // => [1, 2, 3]
  1. Array.prototype.toSorted(f)
// 기존
const arr = [5, 3, 2];
arr.sort(); // [2, 3, 5]
arr; // [2, 3, 5]

// 제안
const outOfOrder = new Uint8Array([3, 1, 2]);
outOfOrder.toSorted(); // => Uint8Array [1, 2, 3]
outOfOrder; // => Uint8Array [3, 1, 2]
  1. Array.prototype.toSpliced(i, c, ...vs)
// 기존
const arr = [1, 2, 3, 4, 5];
arr.splice(2, 3); // [3, 4, 5]
arr; // [1, 2]

// 제안
const arr = [1, 2, 3, 4, 5];
arr.toSpliced(1, 2, [99]); // [1, 99, 3, 4, 5]
arr; // [1, 2, 3, 4, 5]

참조자료

기대되는 다른 메서드