js操作json数据的问题?

json数据:{"36865": [1, [76]], "36868": [1, [76, 74]], "36869": [1, [76]], "36998": [1, [75]]}

我想在想把key取出来,组成字符串:36865,36868,36869,36998

如何做?要用循环吗?

阅读 4.1k
7 个回答
var arr = []
for (var key in { ... }) {
  arr.push(key)
}

以上几个哥们都给出了比较好的解决方案 我觉得你可以看自己的使用场景, 如果是react等支持 es5 的语法, 使用 Object.keys(obj) 这种方法. 如果是浏览器等不支持或者说是直接运行的, 则循环是降级的优雅实现方式.
修改下说明, es5, 而并非 es6

补充最后一楼的答案, Object.keys 函数其实是 es5 的方法,在 IE9 以后的浏览器就得到了完全的支持,可以放开使用。

const arr = {"36865": [1, [76]], "36868": [1, [76, 74]], "36869": [1, [76]], "36998": [1, [75]]}

for(let i in arr){
    console.log(i)    
}

可以这样做

l = {"36865": [1, [76]], "36868": [1, [76, 74]], "36869": [1, [76]], "36998": [1, [75]]};
var keys = [];
for(var k in l) keys.push(k);
keys

输出:

["36865", "36868", "36869", "36998"]
var obj = l = {"36865": [1, [76]], "36868": [1, [76, 74]], "36869": [1, [76]], "36998": [1, [75]]};
var keys = Object.keys(obj)
console.log(keys)

 ["36865", "36868", "36869", "36998"]

如果是纯的json对象!
可以这样

Object.getOwnPropertyNames(json)

返回key组成的数组!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题