Как добавить свойство в начале объекта в javascript

Вопрос:У меня var obj = {'b': 2, 'c': 3}; И я хотел бы добавить свойство в начале (а не в конце) этого объекта: var obj = {'a': 1, 'b': 2, 'c': 3}; Есть ли чистый способ сделать это? Лучший ответ: Объекты JavaScript неупорядочены. Нет начала или конца. Если вы хотите заказать, используйте массив. var arr

Вопрос:

У меня

var obj = {‘b’: 2, ‘c’: 3};

И я хотел бы добавить свойство в начале (а не в конце) этого объекта:

var obj = {‘a’: 1, ‘b’: 2, ‘c’: 3};

Есть ли чистый способ сделать это?

Лучший ответ:

Объекты JavaScript неупорядочены. Нет начала или конца. Если вы хотите заказать, используйте массив.

var arr = [ { key: ‘b’, value: 2 }, { key: ‘c’, value: 3 } ];

Затем вы можете добавить его перед unshift:

arr.unshift({ key: ‘a’, value: 1 }); Ответ №1

Вы также можете использовать Object.assign() в ES6 (ES2015 +).

let obj = {‘b’: 2, ‘c’: 3}; Object.assign({a: 1}, obj); // Object {a: 1, b: 2, c: 3} Ответ №2

Это можно сделать, используя функцию lodash, например:

var myObj = _.merge({ col1: ‘col 1’, col2: ‘col 2’}, { col3: ‘col 3’, col4: ‘col 4’ });

Ваш последний объект будет выглядеть следующим образом:

{ col1: ‘col 1’, col2: ‘col 2’, col3: ‘col 3’, col4: ‘col 4’ }

Как уже упоминалось, нет гарантии, что порядок ключей в объекте останется неизменным, в зависимости от того, что вы с ним делаете. Но, если вы выполняете слияние как свой последний шаг, вы должны быть в порядке. Обратите внимание: функция “merge” создаст совершенно новый объект, он не изменит ни один из объектов, которые вы передаете в него.

Ответ №3

Что сработало для меня, так это использовать временный объект для хранения элементов в нужном порядке.
Например:

var new_object = {}; new_object[name] = value; // The property we need at the start for (var key in old_object) { // Looping through all values of the old object new_object[key] = old_object[key]; delete old_object[key]; } old_object = new_object; // Replacing the old object with the desired one

Оцените статью
Добавить комментарий