Преобразовать литеральную запись объекта в массив - PullRequest
7 голосов
/ 31 января 2012

Я использовал литерал в качестве словаря, но сторонний инструмент связывания принимает только массивы.

Это один из способов, есть ли лучший?

var arr = [];
$.each(objectLiteral, function () { arr.push(this); });

Ответы [ 3 ]

9 голосов
/ 31 января 2012

Я думаю, в вашем решении нет ничего плохого.

Это короче:

var arr = $.map(objectLiteral, function (value) { return value; });
7 голосов
/ 31 января 2012

Ваш метод в порядке, понятен и читабелен. Чтобы сделать это без jQuery, используйте синтаксис for (..in..):

var arr = [];
for (prop in objectLiteral) {
  arr.push(objectLiteral[prop]);
}
2 голосов
/ 08 февраля 2017

В vanilla JS ...

Если мы хотим преобразовать литерал объекта

var obj = {
 species: 'canine',
 name: 'Charlie',
 age: 4
}

в массив массивов

[['species', 'canine'], ['name', 'Charlie'], ['age', 4]]

, это один из способов

function objToArr(obj){
  var arr = [];

  for (var key in obj){
    arr.push([key, obj[key]]);
  }
  return arr;
}
...