当前位置: 首页 > 面试题库 >

将具有数字键的JavaScript对象转换为数组

邹曦之
2023-03-14
问题内容

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

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

我想将其转换为如下所示的JavaScript数组:

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

有没有最好的方法来做到这一点?无论我在哪里阅读,人们都在使用复杂的循环逻辑。那么有替代方法可以做到这一点吗?


问题答案:

jQuery实际上非常简单 $.map

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

小提琴

在没有jQuery的情况下几乎一样容易,将键转换为数组,然后使用
Array.map

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

小提琴

假设它已经被解析为javascript对象,并且实际上不是JSON(JSON是一种字符串格式),在这种情况下,JSON.parse也需要进行遍历。

在ES2015中Object.values,可以轻松进行救援

var arr = Object.values(obj);


 类似资料:
  • 问题内容: 我想将对象数组转换为javascript中具有键值对的对象。 我如何将其转换为诸如 我希望大多数浏览器都支持它。 问题答案: 您可以使用和传播语法来创建具有给定对象数组的单个对象。

  • 问题内容: 我有一个从包含重复密钥的数据库中获取的JSON字符串。我想通过将重复键的值组合到数组中来删除重复键。 例如 输入项 输出量 实际数据是一个可能嵌套的大文件。我不会提前知道有多少对。 我需要为此使用Java。org.json由于重复的键而引发异常,gson可以解析该字符串,但是每个重复的键都会覆盖最后一个。我需要保留所有数据。 如果可能的话,我想不编辑任何库代码就这样做 问题答案: 从今

  • 问题内容: 给定一个json文件,格式为: 我将如何使用jq将其转换为如下形式: 使用[] .name键为我提供了一个对象,但是如何为该对象分配对象呢? 问题答案: (这是出于安全性/鲁棒性。) 索引/ 1 如果您的jq (在1.5版发布后引入),则可以简单地编写:

  • 问题内容: 转换的最佳方法是什么: 至: 问题答案: ECMAScript 6引入了易于填充的内容: 该方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 数组的自身属性不会被复制,因为它无法枚举。 另外,您可以使用ES6 传播语法来达到相同的结果:

  • 问题内容: 我正在尝试将数组转换为对象,并且我快到了。 这是我的输入数组: 这是我当前的输出对象: 这是我想要的输出对象: 这是我当前的代码: 问题答案: 你不能那样做。 不是有效的JavaScript对象。 javascript中的对象是键值对。看看你的情况如何,然后是冒号,然后是数字?的是,号码是的。 如果执行此操作,则将无法访问属性。 这是Firefox控制台的结果: