Как преобразовать перечисление в ключ, массив значений в машинописи? - PullRequest
0 голосов
/ 05 марта 2019
var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
  };

Я хочу иметь возможность преобразовать это в массив, который выглядит следующим образом:

[
  {
    number:'1',
    word:'HELLO'
  },
  {
    number:'2',
    word:'BYE'
  },
  {
    number:'3',
    word:'TATA'
  }
]

все решения, которые я вижу, образуют массив либо ключей, либо значений.

Ответы [ 6 ]

1 голос
/ 05 марта 2019

вы можете использовать Object.entries () с foreach и отправить его в массив, подобный этому

var enums = {
    '1': 'HELLO',
    '2' : 'BYE',
    '3' : 'TATA'
    };

var enumArray = []
Object.entries(enums).forEach(([key, value]) => enumArray.push({number : key, word : value}));

console.log(enumArray);
1 голос
/ 05 марта 2019

Вы можете сопоставить записи с свойствами короткой руки .

var enums = { 1: 'HELLO', 2: 'BYE', 3: 'TATA' },
    objects = Object.entries(enums).map(([number, word]) => ({ number, word }));

console.log(objects);
.as-console-wrapper { max-height: 100% !important; top: 0; }
1 голос
/ 05 марта 2019

Вы можете использовать Object.entries и map в желаемом формате

var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
  };
  
let op = Object.entries(enums).map(([key, value]) => ({ number:key, word:value }))

console.log(op)
0 голосов
/ 06 марта 2019

Вы можете использовать Object.keys и карту

var obj = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
};


const result = Object.keys(obj).map(el => {
  return {
    number: el,
    word: obj[el]
  }
})

console.log(result)
0 голосов
/ 05 марта 2019

Другой альтернативой является использование цикла for ... in для перебора ключей enums и создания желаемого массива объектов.

var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
};

let res = [];

for (key in enums)
{
    res.push({number: key, word: enums[key]});    
}

console.log(res);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
0 голосов
/ 05 марта 2019

Необходимо создать объект типа Map, затем получить значение, используя get метод наподобие outData.get ("1")

var obj = {
    '1': 'HELLO',
    '2': 'BYE',
    '3': 'TATA'
};
var outData = new Map();
Object.keys(obj).forEach(function (e) {
    outData.set(e, obj[e])
});

Для получения данных используйте outData.get («ключ»)

Теперь выводимые данные будут нравиться-

Map(3) {"1" => "HELLO", "2" => "BYE", "3" => "TATA"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...