对象遍历的问题

d 是一个类似Map的对象,我需要根据他的每一个key 去获取对应的value保存到data数组里面,并且不改变原来key的顺序。

var d = {"100003":{"isClosed":0,"time":1,"wordId":10003},"100000":{"isClosed":1,"time":1,"wordId":100000},"100005":{"isClosed":0,"time":1,"wordId":100005},"100004":{"isClosed":1,"time":1,"wordId":100004},"100007":{"isClosed":0,"time":1,"wordId":100007},"100008":{"isClosed":0,"time":1,"wordId":100008},"100002":{"isClosed":0,"time":1,"wordId":100002}} ;
var data = [];

data 里面是 这样的解构 data = [

    {
        100003: {
            "isClosed":0,
            "time":1,
            "wordId":10003
        }
    },
    {
        100000: {
            "isClosed":0,
            "time":1,
            "wordId":10000
        }
    }

]

阅读 1.8k
2 个回答

如果 key 的原始顺序没有规律,基本是没有可能了。如果有保持顺序的需求,那就不应该存储为一个 Map 对象而应该是一个 Array 对象。

放弃吧,键的排序在不同浏览器下都不一样。所以放弃。

但,如果你的 d 是由后端返回的 JSON 的话,那么可以获得到字符串版本的。那么,可以用正则来解决。

/"([0-9]{6})"/g

我就这么干的。

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