Cada elemento de esta matriz es un número.
var items = Array(523,3452,334,31, ...5346);
¿Cómo reemplazo algún número con una matriz nueva?
Por ejemplo, queremos reemplazar 3452 con 1010, ¿cómo haríamos esto?
javascript
arrays
James
fuente
fuente
replace
método para las matrices?Respuestas:
También se recomienda que no use el método constructor para inicializar sus matrices. En su lugar, use la sintaxis literal:
También puedes usar el
~
operador si te gusta JavaScript y quieres acortar la-1
comparación:A veces incluso me gusta escribir una
contains
función para abstraer esta verificación y facilitar la comprensión de lo que está sucediendo. Lo sorprendente es que esto funciona tanto en matrices como en cadenas:Comenzando con ES6 / ES2015 para cadenas, y propuesto para ES2016 para matrices, puede determinar más fácilmente si una fuente contiene otro valor:
fuente
contains
:var contains = (a, b) => !!~a.indexOf(b)
: PArray.prototype.includes
en su lugar.in
para ver si un objeto tiene una clave (por ejemplo,'property' in obj
), o también puede recorrer los valores de un objeto conObject.values(obj).forEach(value => {})
.El
Array.indexOf()
método reemplazará la primera instancia. Para obtener cada instancia useArray.map()
:Por supuesto, eso crea una nueva matriz. Si desea hacerlo en su lugar, use
Array.forEach()
:fuente
Array.indexOf()
fue introducido al mismo tiempo quemap()
yforEach()
. Si es compatible con IE8 o anterior, y no está utilizando una cuña para agregar soporte, mejor vaya con la respuesta de mellamokb .Mi solución sugerida sería:
La operación de empalme eliminará 1 elemento, comenzando en la posición 1 de la matriz (es decir
3452
), y lo reemplazará con el nuevo elemento1010
.fuente
1
elemento se eliminará cuando, de hecho, el primer parámetro significa que la operación se lleva a cabo en el índice1
. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Use indexOf para encontrar un elemento.
fuente
Fácilmente logrado con un
for
bucle.fuente
Puede editar cualquier número de la lista usando índices
por ejemplo :
fuente
Si usa un objeto complejo (o incluso uno simple) y puede usar es6,
Array.prototype.findIndex
es bueno. Para la matriz del OP, podrían hacer,Para objetos más complejos, esto realmente brilla. Por ejemplo,
fuente
El reemplazo se puede hacer en una línea:
O cree una función para reutilizar:
fuente
Manera ES6 :
Queremos reemplazar
3452
con1010
, solución:Seguramente, la pregunta es hace muchos años y por ahora solo prefiero usar una solución inmutable , definitivamente, es increíble
ReactJS
.Para uso frecuente ofrezco la siguiente función:
fuente
Primer metodo
La mejor manera en solo una línea para reemplazar o actualizar el elemento de la matriz
P.ej:
Segundo método
Otra forma sencilla de hacer la misma operación es:
fuente
La forma más fácil es usar algunas bibliotecas como el subrayado y el método de mapa.
fuente
replace
_.replace([1, 2, 3], 2, 3);
La forma inmutable de reemplazar el elemento en la lista utilizando operadores y
.slice
método de propagación ES6 .Verifica que funciona
fuente
Si conoce el valor, use,
Si desea saber si el valor está presente o no, use,
Si conoce el lugar (posición), use directamente,
Si desea reemplazar algunos elementos, y sabe que solo la posición inicial solo significa,
para más información sobre .splice
fuente
desde aquí puede eliminar un valor particular de la matriz y, según el mismo índice, puede insertar un valor en la matriz.
fuente
Bueno, si alguien está interesado en cómo reemplazar un objeto de su índice en una matriz, aquí hay una solución.
Encuentre el índice del objeto por su id:
Reemplace el objeto usando el método Object.assign ():
fuente
La respuesta de @ gilly3 es genial.
Cómo extender esto para una matriz de objetos
Prefiero la siguiente forma de actualizar el nuevo registro actualizado en mi conjunto de registros cuando obtengo datos del servidor. Mantiene el orden intacto y bastante sencillo.
users = users.map(u => u.id !== editedUser.id ? u : editedUser);
fuente
Primero, reescribe tu matriz así:
A continuación, acceda al elemento en la matriz a través de su número de índice. La fórmula para determinar el número de índice es:
n-1
Para reemplazar el primer elemento
(n=1)
de la matriz, escriba:En su ejemplo, el número
3452
está en la segunda posición(n=2)
. Entonces la fórmula para determinar el número de índice es2-1 = 1
. Entonces escriba el siguiente código para reemplazarlo3452
con1010
:fuente
Aquí está la respuesta básica hecha en una función reutilizable:
fuente
Resolví este problema usando bucles e iterando a través de la matriz original y agregando las posiciones de los arreas coincidentes a otra matriz y luego recorriendo esa matriz y cambiándola en la matriz original y luego la devolví, utilicé una función de flecha pero una función regular funcionaría también
fuente
fuente
La forma más fácil es esto.
fuente
replaceWhat = 523, replaceWith = 999999
no produce resultados correctosAquí hay un trazador de líneas. Se supone que el elemento estará en la matriz.
fuente
Si quiere un simple sintax de azúcar, puede:
Me gusta:
Si no tiene identificación, puede clasificar el elemento como:
fuente