Как перенести объект javascript в массив ключей / значений

Учитывая объект JavaScript, как его преобразовать в массив объектов (каждый с ключом, значением)?

Пример:

var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' } 

В результате чего:

 [ { key: 'firstName', value: 'John' }, { key: 'lastName', value: 'Doe' }, { key: 'email', value: 'john.doe@gmail.com' } ] 

  • Facebook edge.create
  • Несколько внешних файлов JavaScript с использованием одного тега сценария
  • Отдых с Express.js вложенным маршрутизатором
  • Лучшие способы отображения уведомлений с помощью jQuery
  • Javascript и PHP Xor эквивалент
  • Как проверить одинаковый массив наиболее эффективным способом?
  • Дата JavaScript ISO8601
  • Учет для Backbone.js маршрутов pushState с узлом node.js express server?
  • 5 Solutions collect form web for “Как перенести объект javascript в массив ключей / значений”

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

     var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' }; var result = []; for(var key in data) { if(data.hasOwnProperty(key)) { result.push({ key: key, value: data[key] }); } } 

    Использование функции map

     var data = { firstName: 'John', lastName: 'Doe', email: 'john.doe@gmail.com' }; var result = Object.keys(data).map(key => ({ key, value: data[key] })); console.log(result); 

    Просто сделайте свою жизнь проще и используйте синтаксис es6 с картой

      var output = Object.keys(data).map(key => { return { key: key, value: data[key] }; }) 

    Предыдущий ответ заставил меня думать, что есть лучший способ …

     Object.keys(data).map(function(key) { return { key, value: data[key] }; }); 

    Или в ES6 с использованием функций стрелок:

     Object.keys(data).map((key) => { key, value: data[key] }); 
     var result = []; for(var k in data) result.push({key:k,value:data[k]}); 
    JavaScript делает сайт умным, красочным и простым использованием.