Javascript 如何迭代JSON对象并获取每个键的值
我有一个JSONObject,每个键都有一个JSONArray作为值Javascript 如何迭代JSON对象并获取每个键的值,javascript,arrays,jsonobject,Javascript,Arrays,Jsonobject,我有一个JSONObject,每个键都有一个JSONArray作为值 { "abc" : [null, "1,3", "2,4"], "dbs" : [null, "1,4", "4,5"], "sad" : [null, "6,2", "3,4", "5,5"] } 我希望迭代对象,获取每个键的JSONArray值,并将其放入字符串[]。key:abc示例我想要一个字符串[]:[null,“1,3”,“2,4”] 谁能帮我一下吗 我尝试了以下方法: for (var
{
"abc" : [null, "1,3", "2,4"],
"dbs" : [null, "1,4", "4,5"],
"sad" : [null, "6,2", "3,4", "5,5"]
}
我希望迭代对象,获取每个键的JSONArray值,并将其放入字符串[]。key:abc示例我想要一个字符串[]:[null,“1,3”,“2,4”]
谁能帮我一下吗
我尝试了以下方法:
for (var key in jsonObject) {
if (jsonObject.hasOwnProperty(key)) {
var array = jsonObject[key];
}
}
但这给了我:“,1,3,2,4”这应该可以做到:
function extract(data){
return Object.keys(data).map(function(x){
return data[x].filter(function(z){return z!==null;});
});
}
这是可以玩的游戏。有关地图的说明,请参见
如果要展平数据,可以将其扩展到:
function flatten(data){
return Object.keys(Object.keys(data).map(function(x){
return data[x].filter(function(z){return z!==null;});
}).reduce(function(o,n){
n.forEach(function(x){
o[x]=x;
});
return o;
},{}));
}
这不起作用,因为它只会给我“1,2”。这完全违背了你的目的,你能告诉我们你已经尝试了什么吗?字符串需要密钥或密码的名称吗?比如:
varabc=[1,2]代码>?@Maarten:新字符串[]可以是任何名称。您需要过滤掉空值吗?如何让小提琴工作。我单击run,但没有打开浏览器的开发工具;)e、 g.F12应适用于所有常见浏览器。此解决方案与我的解决方案有何不同?对不起,我是一个Noobie你的初始代码不工作。下面是代码的一个更新,使其能够工作:但是仍然缺少对“null”元素的过滤。这里有过滤器: