Оператор дробовика 🇷🇺
Оператор дробовика 🇷🇺 (Shotgun Operator) – это проект развития здоровой оружейной культуру среди гражданских владельцев оружия в России и не только. Мы делаем акцент на ответственном и эффективном владения самым доступным, мощным и универсальным гражданским оружием - тактическом ружье 12 калибра.
Канал · 1678
⚠️Почему опасно использовать spread оператор С помощью spread оператора (…) можно передавать итерируемые коллекции (например, массивы или строки) в качестве аргументов функции или добавлять содержащиеся в них элементы в новый массив. Кроме того, этот синтаксис может использоваться для объектов, чтобы копировать пары ключ-значение из одного объекта в другой и вот здесь проявляется его темная сторона: мы случайно можем остановить выполнение нашего веб-приложения 🤡(если данных очень много) Например, у нас есть массив объектов и мы хотим его превратить в один объект: const cart = [ { id: '1', name: 'Apple'}, { id: '2', name: 'Orange'}, { id: '3', name: 'Cherry'}, ] const products = cart.reduce( (acc, item) => ({ ...acc, [item.id]: [item.name], }), {} ); Из примера мы видим только один цикл, но есть еще один… Внутренний цикл с оператором spread, который копирует существующие ключи аккумулятора в новый объект. ❗️Таким образом, даже если внутренний цикл не выполняется точно n раз на каждой итерации (потому что там зависим от ключей), можно сказать, что его сложность составляет O(n^2) Как мы можем изменить этот код? Есть множество решений, рассмотрим одно: const cart = [ { id: '1', name: 'Apple'}, { id: '2', name: 'Orange'}, { id: '3', name: 'Cherry'}, ]; const products = cart.reduce((acc, item) => { acc[item.id] = [item.name]; return acc; }, {}); 😅Теперь сложность стала просто O(n). Сравнить можно здесь 🪩Spread оператор был введен в JavaScript ES6 вместе с другими замечательными возможностями, но с большой силой приходит большая ответственность 💀
🚀 Невероятные фишки в JavaScript! 🚀 Привет, уважаемые подписчики! Сегодня я хотел бы поделиться некоторыми полезными фишками в JavaScript, которые позволят вам улучшить свой код. Давайте начнем: 1️⃣ Оператор объединения объектоов (spread operator): const obj1 = {a: 1, b: 2}; const obj2 = {c: 3}; const combinedObj = {...obj1, ...obj2}; console.log(combinedObj); // Вывод: {a: 1, b: 2, c: 3} Благодаря spread оператору вы можете легко объединить несколько объектов в один. 2️⃣ Nullish Coalescing оператор: const username = ''; const displayName = username || 'Аноним'; console.log(displayName); // Вывод: 'Аноним' Nullish Coalescing оператор (??) позволяет назначить значение по умолчанию только если переменная имеет значение null или undefined. 3️⃣ Деструктуризация объектов: const user = { name: 'Иван', age: 30, email: 'ivan@example.com' }; const {name, age} = user; console.log(name, age); // Вывод: 'Иван', 30 Деструктуризация объектов дает возможность извлекать значения свойств объекта в отдельные переменные. 4️⃣ Метод '.map()' для массивов: const numbers = [1, 2, 3, 4, 5]; const doubledNumbers = numbers.map(num => num * 2); console.log(doubledNumbers); // Вывод: [2, 4, 6, 8, 10] Метод '.map()' позволяет применять функцию к каждому элементу массива и создавать новый массив на основе результатов. Это всего лишь небольшая часть возможностей JavaScript, которая может значительно улучшить ваш код. Надеюсь, что вы найдете эти фишки полезными! 🤓 #javascript #код #фишки