Я вытаскиваю элементы из DOM с помощью jQuery и хочу установить свойство для объекта, используя id
элемент DOM.
пример
const obj = {}
jQuery(itemsFromDom).each(function() {
const element = jQuery(this)
const name = element.attr('id')
const value = element.attr('value')
// Here is the problem
obj.name = value
})
Если itemsFromDom
включает в себя элемент с id
«myId», я хочу obj
иметь свойство с именем «myId». Вышесказанное дает мне name
.
Как мне назвать свойство объекта, используя переменную, используя JavaScript?
javascript
jquery
object
syntax
Тодд Р
источник
источник
Ответы:
Вы можете использовать этот эквивалентный синтаксис:
источник
С ECMAScript 2015 вы можете сделать это прямо в объявлении объекта, используя скобки:
Где
key
может быть любое выражение (например, переменная), возвращающее значение:источник
obj[name]=value
когда я мог бы просто использовать твое предложение вместо этогоВы даже можете сделать список объектов, как это
источник
Есть два разных обозначения для доступа к свойствам объекта
Точечная запись быстра и проста, но вы должны явно использовать фактическое имя свойства. Без подстановки, переменных и т. Д.
Обозначение в скобках является открытым. Он использует строку, но вы можете создать строку, используя любой допустимый код js. Вы можете указать строку как литерал (хотя в этом случае точечная нотация будет читаться легче) или использовать переменную или вычислить каким-либо образом.
Таким образом, это все установить myObj свойство с именем prop1 к значению Hello :
Ловушки:
tl; dnr : если вы хотите вычислить или ссылаться на ключ, вы должны использовать скобочные обозначения . Если вы используете ключ явно, то используйте точечную запись для простого понятного кода.
Примечание: есть и другие хорошие и правильные ответы, но я лично нашел их немного краткими из-за слабого знакомства с причудливостью JS на лету. Это может быть полезно для некоторых людей.
источник
С помощью lodash вы можете создать новый объект, такой как _.set :
Или вы можете установить существующий объект следующим образом:
Вы должны быть осторожны, если хотите использовать точку (".") На своем пути, потому что lodash может установить иерархию, например:
источник
Сначала нам нужно определить ключ как переменную, а затем нам нужно назначить ключ как объект. Например,
источник
С появлением ES2015 Object.assign и вычисляемых имен свойств код OP сводится к:
источник
Если вы хотите добавить поля к объекту динамически, самый простой способ сделать это следующим образом:
Это создаст объект данных, который имеет следующие поля:
источник
Если у вас есть объект, вы можете создать массив ключей, затем отобразить и создать новый объект из предыдущих ключей объекта и значений.
источник
ajavascript имеет два типа аннотации для извлечения свойств объекта javascript:
Obj = {};
1) (.) Аннотация, например. Obj.id это будет работать, только если у объекта уже есть свойство с именем 'id'
2) ([]) аннотация, например. Obj [id] здесь, если объект не имеет какого-либо свойства с именем 'id', он создаст новое свойство с именем 'id'.
так для приведенного ниже примера:
Новое свойство будет создаваться всегда, когда вы пишете Obj [имя]. И если свойство с таким именем уже существует, оно будет переопределено.
источник
Связанный с предметом, не определенно для jquery все же. Я использовал это в ec6 реагировать проекты, может быть, помогает кому-то:
PS: Пожалуйста, обратите внимание на символ цитаты.
источник
objectname.newProperty = value;
источник
источник