Javascript 如何使用JS在特定位置向对象添加新项

Javascript 如何使用JS在特定位置向对象添加新项,javascript,for-loop,object,Javascript,For Loop,Object,最初,我有这样一个目标 里面有更多的数据,我错过了 "Citizens": [ { "_id": "6070be28c98d5a0ea88f131c", "id": 1, "name": "Karl", "city_

最初,我有这样一个目标

里面有更多的数据,我错过了

"Citizens": [

            {
                "_id": "6070be28c98d5a0ea88f131c",
                "id": 1,
                "name": "Karl",
                "city_id": "1",
                "groups": []
            },
          ]
在这个循环中通过它之后

                       for(let i = 0; i < objTmp[0]["Citizens"].length; i++){
                            for(let j = 0; j < citiesAll[0]["Cities"].length; j++){
                                if(objTmp[0]["Citizens"][i].id == citiesAll[0]["Cities"][j].id) {

           
                                  objTmp[0]["Citizens"][i].city = citiesAll[0]["Cities"][j];


                                }       
                            }
                        }

]

问题


我如何才能将city添加到末尾而不是开始,如图所示?

正如Roshan提到的,关键订单在JS中不可靠,不应该依赖。如果您需要维护密钥顺序,我建议使用地图

以下是所有这两种情况的示例(包括不可靠的对象路由):

1.作为对象 由于对象键没有固有的顺序,如果在浏览器控制台中运行并展开对象,这可能看起来不正确,但如果运行下面的代码段,您将在控制台中看到正确的预期顺序。要确保所需的顺序,请使用第2节中进一步说明的地图

1.1. 作为使用嵌套数组方法循环的对象
const objTmp=[{公民:[{身份证:6070be28c98d5a0ea88f131c”,身份证:1,姓名:“卡尔”,城市身份证:1,团体:[]}];
const citiesAll=[{城市:[{id:1,名称:“莫斯科”,数据:“10000000”}];
objTmp[0][“Citizens”].forEach((citizen,i)=>citiesAll[0][“Cities”].find(city=>city.id&&citizen.id&&city.id==citizen.id&&(objTmp[0][“Citizens”][i]={……citizen,city:{……city}]))

console.log(objTmp[0][“公民”][0])我不同意提供对象键排序方法的其他答案

我的回答是:不要那样做。试图对JavaScript对象的键进行排序是一种糟糕的做法,而且是反语义的。阅读你的代码的人要么会感到困惑,要么会正确地认为它充满了bug

我完全认识到这些钥匙,但我认为你不应该依赖它


使用映射、元组或其他为具有顺序而构建的对象。

对象属性没有顺序。它不像数组。它们确实有一个顺序,但并不总是强制执行。请参见:对象确实是无序的,但必须有一种方法将城市添加到末尾?没有一种方法将其添加到末尾。这是同一个目标,不管这个城市是在开始、结束还是在中间。现在就着手解决问题。请继续关注…如何使此构造在嵌套循环中工作?@Cooler cpu我已更新了我的解决方案,除了数组
forEach()
方法循环外,还包括经典
for
循环和
for..of
循环的示例。请检查并尝试每种方法。请记住,贴图将可靠地保持顺序,而对象不会。为了测试映射解决方案(2.1、2.2和2.2),您需要在控制台中运行代码,因为StackOverflow目前不支持将映射数据记录到其内置控制台。我的答案是目前唯一的其他答案,我特别说过不要重新排序对象键,而是使用映射,我提供了具体的指导方针和示例,所以我不确定您所指的是其他哪些答案。
        {
            "city": {
                "id": 1,
                "name": "Moscow",
                "data": "10000000"
            },
            "_id": "6070be28c98d5a0ea88f131c",
            "id": 1,
            "name": "Karl",
            "city_id": "1",
            "groups": []
        },