Javascript 将对象文字符号转换为数组

Javascript 将对象文字符号转换为数组,javascript,jquery,arrays,object-literal,Javascript,Jquery,Arrays,Object Literal,我使用文字作为字典,但第三方绑定工具只接受数组 这是一种方法,有更好的方法吗 var arr = []; $.each(objectLiteral, function () { arr.push(this); }); 我认为你的解决方案没有问题 这是一个较短的: var arr = $.map(objectLiteral, function (value) { return value; }); 你的方法很好,清晰易读。要在没有jQuery的情况下执行此操作,请使用(..in..)的语法:

我使用文字作为字典,但第三方绑定工具只接受数组

这是一种方法,有更好的方法吗

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

我认为你的解决方案没有问题

这是一个较短的:

var arr = $.map(objectLiteral, function (value) { return value; });

你的方法很好,清晰易读。要在没有jQuery的情况下执行此操作,请使用(..in..)的
语法:

var arr = [];
for (prop in objectLiteral) {
  arr.push(objectLiteral[prop]);
}
在香草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;
}

在ES2017中,您现在可以使用
Object.entries
,通过ES6解构支持,您可以很好地使用生成的数组,例如

Object.entries(objectLiteral).filter(([key, value]) => !!value).map(([key, value]) => key)
获取具有值的所有属性

const objectLiteral = { hell: 'devil' };

const ver1 = Object.keys(objectLiteral); // ['hell']
const ver2 = Object.values(objectLiteral); // ['devil']
const ver3 = Object.entries(objectLiteral); // [['hell', 'devil']]