Конвертировать группы массивов в объект - PullRequest
0 голосов
/ 12 июня 2018

У меня есть массив.И я хочу преобразовать их в группу объектов.

ниже - мой массив

[ null,
[ 5, 6 ],
[ 7, 8 ],
[ 9, 10 ],
[ 13, 14 ] ]

Затем я попытался преобразовать их в объект по парам, но у меня было так:

{ '0': null,
'1': [ 5, 6 ],
'2': [ 7, 8 ],
'3': [ 9, 10 ],
'4': [ 13, 14 ] }

То, чего я пытаюсь достичь, выглядит примерно так:

    {
        "0": 5,
        "1": 6,
    },
    {
        "0": 7,
        "1": 8,
    },
    {
        "0": 9,
        "1": 10,
    },
    {
        "0": 13,
        "1": 14,
    },

спасибо за тех, кто поможет

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вы можете фильтровать ложные значения и отображать объекты, которым вы присвоили массив.

var array = [null, [5, 6], [7, 8], [9, 10], [13, 14]],
    result = array
        .filter(Boolean)
        .map(a => Object.assign({}, a));
        
console.log(result);

Завернуто в функцию

function getObjects(array) {
    return array
        .filter(Boolean)
        .map(a => Object.assign({}, a));
}

console.log(getObjects([null, [5, 6], [7, 8], [9, 10], [13, 14]]));
0 голосов
/ 12 июня 2018

Вы должны иметь условие, которое пропускает значение null в массиве:

function changeArray(arr){
  var res = [];
  arr.forEach((item)=>{
    let obj = {};
    if(item){
      item.forEach((val, index)=>{
        obj[index] = val;
      });
     res.push(obj);
    }
  });
  return res;
}

var arr1 = [ null,
[ 5, 6 ],
[ 7, 8 ],
[ 9, 10 ],
[ 13, 14 ] ];
console.log(changeArray(arr1));

var arr2 = [ null,
[ 5, 6, 7 ],
[ 7, 8, 9 ]];
console.log(changeArray(arr2));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...