我有一个像这样的对象作为来自服务器的 JSON 响应返回:
{
"0": "1",
"1": "2",
"2": "3",
"3": "4"
}
我想把它转换成这样的 JavaScript 数组:
["1","2","3","4"]
有没有最好的方法来做到这一点?无论我在哪里阅读,人们都在使用循环来使用复杂的逻辑。那么有没有其他方法可以做到这一点?
我有一个像这样的对象作为来自服务器的 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.parse
。
在 ES2015 中有Object.values
救援,这让这变得轻而易举
var arr = Object.values(obj);
var json = '{"0":"1","1":"2","2":"3","3":"4"}';
var parsed = JSON.parse(json);
var arr = [];
for (var x in parsed) {
arr.push(parsed[x]);
}
console.log(arr)
希望这就是你所追求的!
你只是这样做
var data = {
"0": "1",
"1": "2",
"2": "3",
"3": "4"
};
var arr = [];
for (var prop in data) {
arr.push(data[prop]);
}
console.log(arr);
没有什么像“JSON 对象” - JSON 是一种序列化表示法。
如果您想将您的javascript 对象转换为javascript 数组,要么您编写自己的循环 [这不会那么复杂!],或者您依赖underscore.js _.toArray()
方法:
var obj = {"0":"1","1":"2","2":"3","3":"4"};
var yourArray = _(obj).toArray();
这里没什么难的。循环您的对象元素并将它们分配给数组
var obj = {"0":"1","1":"2","2":"3","3":"4"};
var arr = [];
for (elem in obj) {
arr.push(obj[elem]);
}