登录

javascript - 对象遍历的问题

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
        }
    }

]

# JavaScript
天蓬老师 天蓬老师 2279 天前 430 次浏览

全部回复(2) 我要回复

  • PHP中文网

    PHP中文网2017-04-11 12:37:02

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

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-11 12:37:02

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

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

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

    我就这么干的。

    回复
    0
  • 取消 回复 发送