Как преобразовать перечисление в массив ключей и значений в машинописном тексте?

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

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

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

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

Что такое {'1', 'HELLO'}? Это не действительный JavaScript и не действительный TypeScript.

jcalz 05.03.2019 18:27

Почему вы ожидаете {number:'2', word: 'TATA'}?

jcalz 05.03.2019 18:36

@jcalz, очевидно, опечатка

WilliamNHarvey 05.03.2019 18:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
3
10 367
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

console.info(op)

откуда вы знаете, что это ожидаемый результат?

brk 05.03.2019 18:29

@brk это указано в вопросе, приятель. I want to be able to convert that into an array that looks like this,

Code Maniac 05.03.2019 18:30

Спасибо за ответ. Это дает мне вывод [ { "1": "HELLO" }, { "2": "BYE" }, { "3": "TATA" } ] Мне нужно, чтобы это было [ { "1", "HELLO" }, {"2","BYE"}, {"3","TATA"}] вместо:

user7434041 05.03.2019 18:31

@ user7434041, можете ли вы описать ожидаемый тип данных? { "1","HELLO" } не является допустимым javascript или typescript. это почти похоже на кортеж Python

WilliamNHarvey 05.03.2019 18:33

@ user7434041 в объекте вам нужна пара ключ/значение, в этом формате --> key:value.

Code Maniac 05.03.2019 18:33

Ой, извините, мой плохой, редактирую ожидаемый результат в вопросе

user7434041 05.03.2019 18:33

Need to create an object of Map type then get the value using get method like 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("key")

Теперь выходные данные будут выглядеть так:

Map(3) {"1" => "HELLO", "2" => "BYE", "3" => "TATA"}
Ответ принят как подходящий

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

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

let res = [];

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

console.info(res);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

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

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

console.info(objects);
.as-console-wrapper { max-height: 100% !important; top: 0; }

вы можете использовать Объект.записи() с foreach и поместить его в такой массив

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

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

console.info(enumArray);

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

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


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

console.info(result)

Другие вопросы по теме