Tengo un problema con una aplicación web que estoy creando. En resumen, quiero pasar una matriz por referencia, de modo que el cambio en un módulo afecte la matriz en la clase principal. La forma en que lo hago es:
No lo entiendo, se debe pasar array por referencia, y aparentemente es así como el cambio funciona de una manera, pero no de la otra. Registro los valores en ambos lados y veo que funciona. Me está volviendo loco...
El código se reduce a esto, estos son los únicos lugares donde las matrices se ven afectadas.
Clase principal:
import { build } from "Module.js"; let usedRelations = []; window.onload = function () { build(usedRelations); } function addNewRelation(relationId) { let rel = {}; // instantiating relation object here usedRelation.push(rel); // it affects the array in the module class }Módulo:
let relationsArray; export function build(usedRelations) { relationsArray = usedRelations; } function deleteUnsavedRelation(usedRelation) { //relationsArray is filtered properly, but usedRelations from main class remain unchanged relationsArray = relationsArray.filter(x => x.relationId != usedRelation.relationId); }