我有一个像这样的对象作为JSON响应从服务器返回:

{
  "0": "1",
  "1": "2",
  "2": "3",
  "3": "4"
}

I want to convert it into a JavaScript array like this:

["1","2","3","4"]

Is there a best way to do this? Wherever I am reading, people are using complex logic using loops. So are there alternative methods to doing this?

推荐答案

实际上,jQuery的$.map非常直截了当

var arr = $.map(obj, function(el) { return el });

FIDDLE

在没有jQuery的情况下,将键转换为数组,然后将值映射回Array.map也几乎同样简单

var arr = Object.keys(obj).map(function(k) { return obj[k] });

FIDDLE

假设它已经被解析为javascript对象,而不是实际上的JSON,这是一种字符串格式,在这种情况下,还需要遍历JSON.parse.

In ES2015 there's Object.values to the rescue, which makes this a breeze

var arr = Object.values(obj);

Jquery相关问答推荐

使用动态类名的gm_addStyle?

当我使用 OwlCarousel 时,没有任何显示

在 Laravel 中使用 jQuery post 按相关值过滤 Select 选项,如何显示从控制器返回的数据?

Ajax 替换而不是追加

jQuery 时间 Select 器

jQuery中的正则表达式字段验证

什么是不使用 jQuery 的经验技术原因?

清除并刷新 jQuery Chosen 下拉列表

根据属性'data-sort'对jQuery中的div进行排序?

有没有办法放大 D3 力布局图?

JavaScript style.display="none" 还是 jQuery .hide() 更高效?

Zepto 和 jQuery 2 有什么区别?

循环判断复选框并计算每个选中或未选中的复选框

页面重新加载后,如何使用 twitter bootstrap 保持当前选项卡处于活动状态?

如何签入用户已在 Google recaptcha 中选中复选框的 js?

jQuery 日期 Select 器 - 禁用过go 的日期

当 iframe 在 jQuery 中完成加载时,如何触发事件?

查找 id 以开头的 html 元素

如何在 JavaScript / jQuery 中获取对象的属性?

获取jQuery中下拉列表的值