插入数字键时,将顺序保存在Object中



我正在解析一个XML,并用这些值构建一个对象。我有一个解析parseXmlByTag()函数,它通过特定的TAG进行解析——它运行良好,所以考虑它正在返回它应该返回的内容。

 this.mytempect = {};
        for (var i = 0; i < xml.length; i++) {
            var temp = {};
            temp.ID = parseXmlByTag(xml[i], "ID");
            temp.name = parseXmlByTag(xml[i], "name");
            temp.phone = parseXmlByTag(xml[i], "phone");
            if (this.mytempect[temp.ID] == null)
                this.mytempect[temp.ID] = [];
                this.mytempect[temp.ID].push(temp);
        }

在我保存每个对象之前,我会检查是否需要为他创建一个新的Key或添加到现有的对象中,最后我会得到这样的东西:

Object {56: Array[1], 70: Array[1], 78: Array[3]}

但第一个是ID 78,第二个是ID 70。当我使用.push()时,它会自动按他的ID数字放置——如果它更大比之后,否则在之前。

我需要保存我得到它们的顺序,所以我会按照我输入的顺序(我创建密钥的顺序(保存它们,如下所示:

Object {78: Array[1], 70: Array[1], 56: Array[3]}

有什么办法吗?

JavaScript中的对象与其他语言中的HashMaps非常相似,如果您熟悉这些语言的话——换句话说,数据保存在键值对中,但没有特别保留顺序。因此,不能依赖对象的成员变量保持不变,因为它们不会。

您需要使用保留顺序的数据结构,如数组。

最新更新