Главная Категории Контакты Поиск

JavaScript ES2023 / ES14 новые возможности

Что нового в ECMAScript 2023. Расширение возможностей JavaScript.

JavaScript·27.05.2024·читать 2 мин 🤓·Автор: Alexey Myzgin

JavaScript продолжает развиваться, предлагая разработчикам всё новые и более удобные инструменты для решения разнообразных задач. В 2023 году язык получил ряд значимых обновлений, которые вошли в стандарт ES2023. В этой статье мы рассмотрим самые важные и интересные нововведения, которые стоит взять на вооружение каждому разработчику.

Array.prototype.findLast

Метод findLast находит последний элемент в массиве, который удовлетворяет заданному условию. Это удобный способ поиска элементов с конца массива, что иногда необходимо в сложных структурах данных или при работе с большими массивами.

// findLast(callbackFn, thisArg)

const array = [1, 2, 3, 4, 5];
const lastEven = array.findLast(element => element % 2 === 0);

console.log(lastEven); // 4

В этом примере findLast ищет последний четный элемент в массиве. Это особенно полезно, когда порядок элементов важен и требуется обработка данных с конца массива.

Array.prototype.findLastIndex

Метод findLastIndex возвращает индекс последнего элемента в массиве, который удовлетворяет заданному условию. Он похож на findLast, но возвращает индекс, а не сам элемент.

// findLastIndex(callbackFn, thisArg)

const array = [1, 2, 3, 4, 5];
const lastEvenIndex = array.findLastIndex(element => element % 2 === 0);

console.log(lastEvenIndex); // 3

Этот метод полезен, когда нужно не только найти последний элемент, соответствующий условию, но и знать его позицию в массиве для дальнейшей обработки или манипуляций.

Array.prototype.toReversed

Метод toReversed возвращает новый массив с элементами в обратном порядке, не изменяя исходный массив. Это удобный способ получить перевернутую версию массива без необходимости изменять исходный массив.

const numbers = [1, 2, 3];
const reversed = numbers.toReversed();

console.log(reversed); // [3, 2, 1]
console.log(numbers);  // [1, 2, 3]

В этом примере toReversed создает новый массив с элементами в обратном порядке, оставляя исходный массив неизменным. Это особенно полезно для операций, требующих перевернутого порядка данных.

Array.prototype.toSorted

Метод toSorted возвращает новый отсортированный массив, не изменяя исходный. Это упрощает сортировку массивов без риска изменить исходные данные.

// toSorted(compareFn)

const numbers = [3, 1, 2];
const sorted = numbers.toSorted();

console.log(sorted);  // [1, 2, 3]
console.log(numbers); // [3, 1, 2]

Этот метод полезен, когда нужно получить отсортированную версию массива, но исходные данные должны оставаться неизменными для дальнейшего использования.

Array.prototype.toSpliced

Метод toSpliced позволяет вырезать и вставлять элементы в массив, возвращая новый массив без изменения исходного. Это расширяет возможности манипуляций с массивами без риска изменения исходных данных.

// toSpliced(start, deleteCount, item1, item2, /* …, */ itemN)

const numbers = [1, 2, 3, 4];
const spliced = numbers.toSpliced(1, 2, 5, 6);

console.log(spliced); // [1, 5, 6, 4]
console.log(numbers); // [1, 2, 3, 4]

Здесь toSpliced создает новый массив, в котором элементы с 1 по 2 индекс заменены на 5 и 6. Исходный массив остается неизменным, что позволяет безопасно использовать исходные данные в других частях программы.

Array.prototype.with

Метод with позволяет создать новый массив, изменив один элемент по заданному индексу, не изменяя исходный массив. Это полезно для работы с неизменяемыми данными, где изменение данных должно быть выполнено аккуратно и безопасно.

// arrayInstance.with(index, value)

const numbers = [1, 2, 3];
const newArray = numbers.with(1, 4);

console.log(newArray); // [1, 4, 3]
console.log(numbers);  // [1, 2, 3]

В этом примере метод with создает новый массив, где элемент с индексом 1 заменен на 4. Исходный массив остается неизменным, что делает этот метод идеальным для ситуаций, требующих работы с неизменяемыми данными.

Заключение

ES2023 приносит множество полезных нововведений, которые делают JavaScript еще более мощным и удобным для использования. Новые методы массивов, такие как findLast, findLastIndex, toReversed, toSorted, toSpliced и with, позволяют нам более эффективно и безопасно работать с данными.

Website, name & logo
Copyright © 2022. Alex Myzgin