JavaScript — создание объекта с помощью метода сокращения и значения ({})

Я изучаю JS уже несколько месяцев, и все идет хорошо, но иногда я сталкиваюсь с вещами, которых не понимаю, или пропустил. Итак, я выполнял некоторые объектно-ориентированные упражнения, и мое задание состояло в том, чтобы преобразовать некоторые значения в числа. Я не был уверен, как это сделать, и после некоторых исследований я придумал эту функцию:

function convertToNumber(obj) {
  return Object.entries(obj).reduce((acc, [k, v]) => ({ ...acc, [k]: +v }), {});
}

Вещи, которые я не понимаю:

  1. Зачем нам нужно использовать({ }) и не только{}? Я предполагаю, что это как-то связано с конкатенацией объектов, но хотелось бы быть уверенным.
  2. Зачем мне ключ в скобках[ ]? Это потому, что сначала я использовал оператор распространения на объекте? Это как писать acc[k] в каком-то смысле?

заранее спасибо

Получение данных из формы с помощью JavaScript - краткое руководство
Получение данных из формы с помощью JavaScript - краткое руководство
Получить данные из формы с помощью JS очень просто: вы запрашиваете элемент формы, передаете его конструктору new FormData() и, наконец, получаете...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
1
0
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

- Зачем нам нужно использовать ({ }) и не только {}? Я предполагаю, что это как-то связано с конкатенацией объектов, но хотелось бы быть уверенным.

Это используется для прямого возврата объекта в стрелочной функции, чтобы отличить его от круглых скобок, используемых для переноса тела функции. Два одинаковых:

(acc, [k, v]) => ({ ...acc, [k]: +v })
(acc, [k, v]) => { return { ...acc, [k]: +v }; }

- Почему ключ нужно заключать в скобки [ ]? Это потому, что сначала я использовал оператор распространения на объекте? Это как писать acc[k] в каком-то смысле?

Скобки в основном используются для установки ключа в качестве динамического значения k. Вот простой пример:

const x = 'id';
console.log({ x: 1 });
console.log({ [x]: 1 });

Другие вопросы по теме