Преобразовать массив объектов в объект - PullRequest
0 голосов
/ 18 февраля 2019

То, чего я хотел добиться, - это преобразовать массив объекта в объект.

mycode

 var arr = data.questions
        var obj = {};
        for (let i = 0; i < arr.length; i++) {
            obj[arr[i].key] = arr[i].value;
        }
        console.log(obj)

результат

data 
(2) [{…}, {…}]
0: {id: 48, questionaire: 94, question: "Helloworld", input_answer: null, order: 0, …}
1: {id: 49, questionaire: 94, question: "sadasdas", input_answer: null, order: 1, …}
length: 2
__proto__: Array(0)

хочу достичь

questions {id: 11, questionaire: 16, question: "what?", input_answer: null, order: 0, …}

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

const input = [
    {id: 48, questionaire: 94, question: "Helloworld", input_answer: null, order: 0},
    {id: 49, questionaire: 94, question: "sadasdas", input_answer: null, order: 1}
];

const output = input.reduce((a, obj)=>{
    a[obj.id] = obj;
    return a;
}, {});

console.log(output);
// Or you can access the specific objects using there keys
console.log(output[48]);
console.log(output[49]);

Если в массиве только один объект, вы можете просто получить доступ к объекту, используя index.

var array = [{id: 44, questionaire: 90, question: "asd", input_answer: null, order: 0}];

console.log(array[0]);
0 голосов
/ 18 февраля 2019

Вы можете использовать Object.assign()

var a = [{
  a: 1
}, {
  b: 2
}, {
  c: 3
}]
var obj = {};
a.forEach(e => {
  Object.assign(obj, e)
})
console.log(obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...