Как можно объединить / сериализовать такие объекты JSON с помощью модулей Node.js или NPM? - PullRequest
2 голосов
/ 24 сентября 2019

Я был бы очень признателен, если бы кто-то предложил, как получить такой JSON

[
  {
    "type": "A_TYPE",
    "value": "foo"
  },
  {
    "type": "A_TYPE",
    "value": "bar"
  },
  {
    "type": "B_TYPE",
    "value": "qux"
  },
  {
    "type": "C_TYPE",
    "value": [
      10000,
      19999
    ],
    "name": "1xxxx"
  }
]

от такого JSON

[
  {
    "type": "A_TYPE",
    "value": [
      "foo",
      "bar"
    ]
  },
  {
    "type": "B_TYPE",
    "value": [
      "qux"
    ]
  },
  {
    "type": "C_TYPE",
    "value": [
      [
        10000,
        19999
      ]
    ]
  }
]

В этом случае объекты со свойством, подобным "type": "A_TYPE" , в котором вы хотите объединить "value": "" , могут быть более одного.

Заранее благодарю за помощь!

1 Ответ

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

Я сделал это решение для вашего вопроса.

let arr = [
  {
    "type": "A_TYPE",
    "value": [
      "foo",
      "bar"
    ]
  },
  {
    "type": "B_TYPE",
    "value": [
      "qux"
    ]
  },
  {
    "type": "C_TYPE",
    "value": [
      [
        10000,
        19999
      ]
    ]
  }
];

let newArr = [];

for (let i = 0; i < arr.length; i++) {
  for (let j = 0; j < arr[i].value.length; j++) {
    let value = arr[i].value[j]; // Get value from the object
    let type = arr[i].type;  // Get type from the object

    // New Object to push to the new Array
    let tempObj = {};
    tempObj.type = type;
    tempObj.value = value;
    newArr.push(tempObj);  // Push object to array
  }
}


console.log(JSON.stringify(newArr));

Проверьте это здесь

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