javascript - 将对象转换为数组 - 维护命名键

标签 javascript jquery arrays json stringify

我正在将一个对象转换为一个数组。对象的键包含诸如“cool”之类的名称,如下所示:

var obj = {
  "cool": "Mustang",
  "family": "Station Wagon",
  "small": {
    0: "small car 1",
    1: "small car 2"
  }
};

转换时,返回的数组如下所示:

Array[3]
0:"Mustang"
1:"Station Wagon"
2:Object
    0:"small car 1" 
    1:"small car 2"

正如您在上面的数组中看到的,对象中的键名称(例如“cool”)丢失了,而是替换为数字。此外,数组包含一个对象,我希望这个对象是数组中的数组。

我希望返回的数组像这样:

Array[3]
"cool":"Mustang"
"family":"Station Wagon"
"small": Array[2]
    0:"small car 1" 
    1:"small car 2"

非常感谢您的帮助。可以在这里找到代码的 fiddle : https://jsfiddle.net/v02q4sy2/8/

var obj = {"cool":"Mustang","family":"Station Wagon","small":{0:"small car 1",1:"small car 2"}}

var arr = $.map(obj, function(value, index) {
    return [value];
});

console.log(arr);

最佳答案

根据您提供的代码,您似乎只需要在 map 方法中返回一个包含相应键/值对的对象:

Updated Example

var arr = $.map(obj, function(value, key) {
  return { [key]: value };
});

不过,您不需要 jQuery。这是一个使用 native .map() method 的简单 JavaScript 示例以及Object.keys()从对象中检索可映射的键数组:

Updated Example

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

关于javascript - 将对象转换为数组 - 维护命名键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015903/

相关文章:

javascript - 选择文本,然后使用 Javascript 计算它与顶部的距离?

javascript - 我如何对不同数量的输入字段进行 JavaScript 数学运算?

jquery - 如何在 jquery 中获取包含 'map' 的类名?

c++ - const char* str[] 中有多少个字符串?

javascript - JS - 将字符串映射到对象数组 ¿如何更改键名?

javascript - 显示产品变体元字段

javascript - 如何在不使用 Twitter API 1.1 的情况下检索 Twitter user_timeline

php - 如何在选项中放入多个值并在mysql中处理它

javascript - 使用 Kony Studio 出现 NoClassDefFoundError

javascript - 是否可以获取 NodeJS 代码中调用的 package.json 脚本?