Как создать значение структуры из структуры id & value в JavaScript? - PullRequest
0 голосов
/ 14 января 2019

Интересно, возможно ли это, но я хочу попробовать. У меня есть массив, как следующий:

srcStruct = {
    id: ["firstID", "secondID"],
    value: ["firstValue", "secondValue"]
};

Я хочу сделать структурное значение из этого массива следующим образом:

destStruct = {
    firstID: firstValue,
    secondID: secondValue
}

Я пытался как следует, но не сработало.

destStruct = {[srcStruct.id]: srcStruct.value};

Пожалуйста, скажите мне, если это возможно, и как это сделать.

1 Ответ

0 голосов
/ 14 января 2019

Нет хорошего синтаксиса для создания объекта, как вы пытались, вам придется вручную циклически перебирать ключи объекта:

const destStruct = {};
srcStruct.id.forEach((id, i) => {
  destStruct[id] = srcStruct.value[i]
})

Или с уменьшением массива

const destStruct = srcStruct.id.reduce(
  (dest, id, i) => {
    dest[id] = srcStruct.value[i];
    return dest;
  }, {})

Вы также можете проверить zipObject от lodash, что делает код немного лучше

import zipObject from ‘lodash/zipObject’;

const { id, value } = srcStruct; // destructuring
const destStruct = zipObject(id, value)

Надеюсь, это поможет!

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