如何获取数组中的所有json键

sam*_*sam 0 javascript arrays json angularjs

我有一个具有以下结构的JSON对象

{"30-31":[{"msg":"hello","usr":"31"}],
"33-30":[{"msg":"shah hi","usr":"30"}]}
Run Code Online (Sandbox Code Playgroud)

我可以执行什么操作来获取这样的数组["30-31", "33-30"].我尽力使用.map等但没有成功,有人可以帮忙吗?

mar*_*308 5

你可以使用Object.keys()

let obj = {"30-31":[{"msg":"hello","usr":"31"}],
  "33-30":[{"msg":"shah hi","usr":"30"}]}
  
console.log(Object.keys(obj));
Run Code Online (Sandbox Code Playgroud)


MrG*_*eek 5

有一个内置的Object.keys(obj),您可以使用:

var json = {"30-31":[{"msg":"hello","usr":"31"}],
            "33-30":[{"msg":"shah hi","usr":"30"}]};
var keys = Object.keys(json);
console.log(keys);
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用for...in循环以困难的(跨浏览器)方式执行此操作:

var json = {"30-31":[{"msg":"hello","usr":"31"}],
            "33-30":[{"msg":"shah hi","usr":"30"}]};
var keys = [];
for (k in json) keys.push(k);
console.log(keys);
Run Code Online (Sandbox Code Playgroud)