Мутирующий объект в JavaScript - PullRequest
       4

Мутирующий объект в JavaScript

0 голосов
/ 26 сентября 2019

Полезное примечание. Подумайте о прочтении 'Какова цель' части внизу, поскольку у меня, возможно, даже не будет наилучшего подхода для начала.Спасибо.

Привет!Итак, у меня есть это:

parent: {
    child1: {
        prop: 'hi there'
    },
    child2: {
        prop: 'hey there'
    }
}

Я хочу запустить магию отображения значений, чтобы это было так:

newObj: {
    child1: 'hi there',
    child2: 'hey there'
}

Я хочу функцию отображения (илиправильное имя для этого процесса), чтобы по существу взять значение prop каждого дочернего элемента в parent и установить это значение в value часть key, которая переносит то же имя, что и в parent,если это имеет смысл.

Всегда ли свойство каждого дочернего объекта имеет имя prop?
Да.

Почему бы не определить его таким образомс самого начала?
Потому что у меня есть другие свойства помимо prop, которые мне нужно использовать.

Какова цель?
Яиспользуя Laravel.Когда я отправляю это на сервер для проверки, я должен проверить child1.prop вместо child1, что означает, что сообщения об ошибках отправляются обратно как:

child1.prop: "Что-то недопустимо"

... и я хочу, чтобы оно было

child1: "Что-то недопустимо" '

Если есть лучший способ,пожалуйста, предложите.

1 Ответ

1 голос
/ 26 сентября 2019

Просто добавив ответ от @Chris G, чтобы другие пользователи могли легко его найти:

const parent = {
  child1: {
    prop: 'hi there'
  },
  child2: {
    prop: 'hey there'
  }
};

const newObj = Object.entries(parent).reduce((a, [key, { prop }]) => ({ ...a, [key]: prop }), {});

out.textContent = JSON.stringify(newObj);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...