Преобразование списка массива JSON в один объект в Angular - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть список массивов, который необходимо преобразовать в один объект с несколькими значениями из списка массивов, используя TypeScript в Angular 8. Ниже приведен массив:

"arrayList": [{
    "name": "Testname1",
    "value": "abc"
  },
  {
    "name": "Testname2",
    "value": "xyz"
  }
]

Это необходимо для быть преобразованным в следующий формат,

data: {
  "Testname1": "abc",
  "Testname2": "xyz",
}

Независимо от того, сколько я пытаюсь, я в конечном итоге создаю список вместо одного объекта. Можете ли вы помочь с тем же?

Ответы [ 4 ]

0 голосов
/ 17 апреля 2020

Пожалуйста, используйте код ниже

const rawData = {
  "arrayList": [{
      "name": "Testname1",
      "value": "abc"
    },
    {
      "name": "Testname2",
      "value": "xyz"
    }
  ]
};

const updatedData = {
  data: {}
};

for (const item of rawData["arrayList"]) {
  updatedData.data[item.name] = item.value;
}

console.log(updatedData);
0 голосов
/ 17 апреля 2020

Попробуйте использовать .reduce() следующим образом:

const arrayList = [{ "name": "Testname1", "value": "abc" }, { "name": "Testname2", "value": "xyz" }];

const data = arrayList.reduce((a, {name, value}) => {
  a[name] = value;
  return a;
}, {});

const result = { data };

console.log(result);
0 голосов
/ 17 апреля 2020

Используйте Array.map() для получения списка [name, value] записей, затем используйте Object.fromEntries() для преобразования в объект:

const arrayList = [{ "name": "Testname1", "value": "abc" }, { "name": "Testname2", "value": "xyz" }];

const result = Object.fromEntries(arrayList.map(({ name, value }) => [name, value]));

console.log(result);
0 голосов
/ 17 апреля 2020

Вы можете использовать следующим образом,

 
var arr =  [
            {
                "name": "Testname1",
                "value": "abc"
            },
            {
                "name": "Testname2",
                "value": "xyz"
            }
           ];

var result = {};
for (var i = 0; i < arr.length; i++) {
  result[arr[i].name] = arr[i].value;
}

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