Как переключить массив в объект с указанием ключей по javascript - PullRequest
0 голосов
/ 04 августа 2020

У меня есть такой массив:

var arr = ['A B', 'C D', 'E F', 'G H']

И я хочу преобразовать в такой объект:

{
  group0: {
    first: 'A',
    last: 'B'
  },
  group1: {
    first: 'C',
    last: 'D'
  },
  group2: {
    first: 'E',
    last: 'F'
  },
  group3: {
    first: 'G',
    last: 'H'
  }
}

Что мне делать?

Ответы [ 5 ]

1 голос
/ 04 августа 2020

Простое и понятное решение с использованием l oop и метода разделения массива.

var arr = ['A B', 'C D', 'E F', 'G H'];

var res = {};
for (let i = 0; i < arr.length; i++) {

  var splittedArray = arr[i].split(' ');
  var first = splittedArray[0];
  var second = splittedArray[1];
  var key = `group${i}`;
  var value = {
    first: first,
    second: second
  };
  res[key] = value;

}

console.log(res);
1 голос
/ 04 августа 2020

Вы можете использовать reduce, как показано ниже

var arr = ['A B', 'C D', 'E F', 'G H'];

const result = arr.reduce((obj, item, index) => {
    const [first, last] = item.split(' ');
    obj[`group${index}`] = {
       first,
       last,
    };
    return obj;
}, {});

console.log(result);
0 голосов
/ 04 августа 2020

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

var data = ['A B', 'C D', 'E F', 'G H'],
    result = data.map(s => (([first, last]) => ({ first, last }))(s.split(' ')));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 04 августа 2020

Можно так

var arr = ['A B', 'C D', 'E F', 'G H'];
var converted = {};
for (var i = 0; i < arr.length; i++) {
  var splitStr = arr[i].split(" ");
  converted["group" + i] = {
    first: splitStr[0],
    last: splitStr[1]
  };
}
console.log(converted);
0 голосов
/ 04 августа 2020

Попробуйте это.

var arr = ['A B', 'C D', 'E F', 'G H'];
var index = 0;
var output = arr.reduce((result, current) => {
  var splitArr = current.split(' ');
  result['group'+index++] = {
      first: splitArr[0],
      last: splitArr[1],
  }
  return result;
}, {});
console.log(output);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...