Objeto Javascript añadir propiedad
es más concisa y directa que la notación de corchetes [].Si una clave con el nombre suministrado ya existe en el objeto, su valor se actualiza.Si el nombre de la clave contiene espacios o guiones -, hay que utilizar corchetes
Si el nombre de la clave contiene espacios o guiones -, hay que utilizar la notación cuadrada.
La mayoría de los programadores utilizan la notación de puntos para añadir pares clave/valor a los objetos, hasta que tienen que utilizar el método de los corchetes [].La siguiente forma más común de añadir un par clave/valor a un objeto es utilizar el argumento
que se copia en el objeto que hemos suministrado para el primer argumento.El método Object.assign es muy conveniente cuando se tienen que añadir múltiples pares clave/valor a un objeto.Otro enfoque común para añadir múltiples pares clave/valor a un objeto es utilizar
Javascript añadir clave/valor a un objeto
En el curso de mi trabajo, no es raro que necesite añadir condicionalmente propiedades a objetos, o (probablemente menos común) valores a arrays. Vamos a hablar de cómo hacer ambas cosas. Este es el trozo de código al que me referiré:const trueCondition = true;const falseCondition = false;
console.log(false && “bye”);// falseSi la primera expresión (en el lado izquierdo) es verdadera (“se considera verdadera cuando se encuentra en un contexto booleano”), devuelve la segunda expresión (en el lado derecho).Si la primera expresión es falsa (“se considera falsa cuando se encuentra en un contexto booleano”), devuelve la primera expresión.Evaluación en circuito cortoLa expresión && se evalúa de izquierda a derecha. Si la primera expresión es falsa, la expresión completa se evalúa en cortocircuito con la expresión falsa (lo que significa que la segunda expresión nunca se evalúa). Esto es lo que nos permite hacer cosas como acceder de forma segura a las propiedades anidadas de un objeto:const obj = {};
console.log(getWelcomeMessageTernary(false));// Por favor, inicie sesión.El operador spread (…)La sintaxis Spread se puede utilizar para expandir un iterable (como una expresión de array), o expandir las propiedades de un objeto.Spreading an iterable:let myDogs = [`Riggins`, `Lyla`];let parentsDogs = [`Ellie`, `Remi`];
Elemento de adición de objetos Javascript
Dependiendo de lo que esté buscando, hay dos funciones específicas que pueden ser buenas para utilizar y dar una funcionalidad similar a la sensación de arr.push(). Para más información, consulta los documentos, que tienen algunos ejemplos muy buenos.
Puede ser digno de mención el Object.assign de ES6/ ES2015, funciona de forma similar a _.merge y puede ser la mejor opción si ya estás utilizando un polyfill de ES6/ES2015 como Babel si quieres hacer un polyfill tú mismo.
Hoy 2020.01.14 realizo pruebas en MacOs HighSierra 10.13.6 en Chrome v78.0.0, Safari v13.0.4 y Firefox v71.0.0, para las soluciones elegidas. Divido las soluciones en mutables (primera letra M) e inmutables (primera letra I). También proporciono algunas soluciones inmutables (IB,IC,ID/IE) no publicadas aún en las respuestas a esta pregunta
En el fragmento de abajo hay solución probada presended, puede prefrom prueba en su máquina AQUÍ (actualización 2022: envío Gran gracias a Josh DeLong que reescribir las pruebas de jspref.com que deja de funcionar a jsbench.me)
El operador de punto es más limpia la sintaxis y debe ser utilizado como un defecto (imo). Sin embargo, el operador punto no es capaz de añadir claves dinámicas a un objeto, lo que puede ser muy útil en algunos casos. He aquí un ejemplo:
Javascript añade un array a un objeto
Además de los objetos predefinidos en el navegador, puedes definir tus propios objetos. Este capítulo describe cómo usar objetos, propiedades y métodos, y cómo crear tus propios objetos.Creación de nuevos objetosPuedes crear un objeto usando un inicializador de objetos. Alternativamente, puede crear primero una función constructora y luego instanciar un objeto invocando esa función con el operador new.Uso de inicializadores de objetosLos inicializadores de objetos también se llaman literales de objetos. “Inicializador de objetos” es coherente con la terminología utilizada por C++。
Cada nombre de propiedad antes de los dos puntos es un identificador (ya sea un nombre, un número o un literal de cadena), y cada valorN es una expresión cuyo valor se asigna al nombre de la propiedad. El nombre de la propiedad también puede ser una expresión; las claves computadas deben ir entre corchetes. La referencia del inicializador de objetos contiene una explicación más detallada de la sintaxis.
En este ejemplo, el objeto recién creado se asigna a una variable obj – esto es opcional. Si no necesitas referirte a este objeto en otra parte, no necesitas asignarlo a una variable. (Tenga en cuenta que puede necesitar envolver el literal del objeto entre paréntesis si el objeto aparece donde se espera una sentencia, para que no se confunda el literal con una sentencia de bloque).