Массив из двух объектов, меняющих значения ключа

У меня есть массив с двумя объектами, я хочу иметь возможность поменять значения ключей двух объектов ..

    "people":[
        {
            "name":"bob",
            "lastname": "johnson",
            "slot_id": 1
        },
        {
            "name":"terry",
            "lastname": "lucas",
            "slot_id": 2
        },
    ]

Я хотел бы иметь возможность поменять местами два slot_id, как это ..

    "people":[
        {
            "name":"bob",
            "lastname": "johnson",
            **"slot_id": 2**
        },
        {
            "name":"terry",
            "lastname": "lucas",
            **"slot_id": 1**
        },
    ]

заранее спасибо!

Всего 2 ответа


Если вы хотите поменять 2 значения, вам понадобится временная переменная, чтобы вы не потеряли значение при назначении нового:

const tmp = people[0].slot_id

people[0].slot_id = people[1].slot_id
people[1].slot_id = tmp

Существует также другая возможность, если вы не хотите использовать временную переменную:

people[0].slot_id += people[1].slot_id
people[1].slot_id = people[0].slot_id - people[1].slot_id
people[0].slot_id -= people[1].slot_id

Вы также можете использовать деструктуризацию массива (предложено @ ASDFGerte )

[people[0].slot_id, people[1].slot_id] = [people[1].slot_id, people[0].slot_id]

const person1Id = people[0].slot_id

people[0].slot_id = people[1].slot_id
people[1].slot_id = person1Id

Есть идеи?

10000