🤓 Недавно узнал о новом методе массивов в JS (включая типизированные массивы). Встречайте with!



Метод очень простой, но ужасно полезный. Фактически - это альтернатива присвоению значения элемента. Например,



const arr = [1, 2, 3, 4, 5];



// Ставим элементу с индексом 1 значение 10

arr[1] = 10;



// Ставим элементу с индексом 1 значение 15

arr.with(1, 15);




Ну и зачем оно надо? А давайте рассахарим вызов with.



const arr = [1, 2, 3, 4, 5];



arr.with(1, 15);



Array.prototoype.with = function (index, value) {

const tmp = this.slice();

tmp[index] = value;

return tmp;

};




Т.е. with это копирующий аналог изменения значения элемента массива.

Он был добавлен в одно время с другими похожими методами: toSorted, toReversed, toSpliced. Они точно также изменяют не сам объект, а создают его копию.



В общем годнота.