Estoy sacando elementos del DOM con jQuery y quiero establecer una propiedad en un objeto usando el id
elemento DOM.
Ejemplo
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
})
Si itemsFromDom
incluye un elemento con un id
"myId", quiero obj
tener una propiedad llamada "myId". Lo anterior me da name
.
¿Cómo nombro una propiedad de un objeto usando una variable usando JavaScript?
javascript
jquery
object
syntax
Todd R
fuente
fuente
Respuestas:
Puede usar esta sintaxis equivalente:
fuente
Con ECMAScript 2015 puede hacerlo directamente en la declaración de objeto utilizando la notación de corchetes:
Donde
key
puede haber cualquier tipo de expresión (por ejemplo, una variable) que devuelva un valor:fuente
obj[name]=value
cuándo podría usar su sugerenciaIncluso puedes hacer una lista de objetos como este
fuente
Hay dos anotaciones diferentes para acceder a las propiedades de los objetos.
La notación de puntos es rápida y fácil, pero debe usar el nombre de propiedad real explícitamente. Sin sustitución, variables, etc.
La notación de corchetes es abierta. Utiliza una cadena pero puede producir la cadena usando cualquier código js legal. Puede especificar la cadena como literal (aunque en este caso la notación de punto se leería más fácilmente) o usar una variable o calcular de alguna manera.
Por lo tanto, todos éstos establecen el myObj propiedad denominada prop1 al valor Hola :
Trampas:
tl; dnr : si desea calcular o hacer referencia a la clave, debe usar la notación de corchetes . Si está utilizando la clave explícitamente, utilice la notación de puntos para un código claro simple.
Nota: hay algunas otras respuestas buenas y correctas, pero personalmente las encontré un poco breves debido a una baja familiaridad con la peculiaridad de JS sobre la marcha. Esto puede ser útil para algunas personas.
fuente
Con lodash, puede crear un nuevo objeto como este _.set :
O puede establecer un objeto existente como este:
Debe tener cuidado si desea utilizar el punto (".") En su ruta, porque lodash puede establecer la jerarquía, por ejemplo:
fuente
Primero necesitamos definir la clave como variable y luego debemos asignar como clave como objeto., Por ejemplo
fuente
Con el advenimiento de ES2015 Object.assign y nombres de propiedades calculadas, el código del OP se reduce a:
fuente
Si desea agregar campos a un objeto dinámicamente, la forma más sencilla de hacerlo es la siguiente:
Esto creará un objeto de datos que tiene los siguientes campos:
fuente
Si tiene un objeto, puede hacer una matriz de claves, que asignarlas, y crear un nuevo objeto a partir de claves y valores de objetos anteriores.
fuente
ajavascript tiene dos tipos de anotación para obtener propiedades de objeto javascript:
Obj = {};
1) (.) Anotación ej. Obj.id esto solo funcionará si el objeto ya tiene una propiedad con el nombre 'id'
2) ([]) anotación ej. Obj [id] aquí si el objeto no tiene ninguna propiedad con el nombre 'id', creará una nueva propiedad con el nombre 'id'.
así que para el siguiente ejemplo:
Siempre se creará una nueva propiedad cuando escriba Obj [nombre]. Y si la propiedad ya existe con el mismo nombre, la anulará.
fuente
Sin embargo, relacionado con el tema, no específicamente para jquery. Usé esto en proyectos de reacción ec6, tal vez ayude a alguien:
PD: Tenga en cuenta el carácter de la cita.
fuente
objectname.newProperty = value;
fuente
fuente