Quiero mover un valor de una matriz a otra. Aquí está la primera matriz
"availableMember": [ { "id": 18, "userDivisionId": 1, "userDivisionCode": "1", "userDivisionName": "DEPT. MARKETING & LOGISTIK" }, { "id": 26, "userDivisionId": 333, "userDivisionCode": "2.3.21.02", "userDivisionName": "YGY PO" }, { "id": 27, "userDivisionId": 335, "userDivisionCode": "2.3.21.02.04", "userDivisionName": "YGY MO" }, ] y quiero mover, por ejemplo, el objeto con userDivisionId es 333, a la segunda matriz.
"selectedMember": [] Ya intenté usar .splice() , pero a veces funciona y otras no. ¿Alguna idea de cómo hacer esto? Por favor, ayúdame. Gracias.
Array.find() es el método más apropiado. Toma una función como parámetro y devolverá el primer elemento en el que la función devuelve true . Si desea encontrar todas las apariciones, simplemente sustituya find con filter . Use Array.push() para agregar un elemento a una matriz o Array.concat() para concatenar dos matrices.
availableMember = [ { id: 18, userDivisionId: 1, userDivisionCode: '1', userDivisionName: 'DEPT. MARKETING & LOGISTIK', }, { id: 26, userDivisionId: 333, userDivisionCode: '2.3.21.02', userDivisionName: 'YGY PO', }, { id: 27, userDivisionId: 335, userDivisionCode: '2.3.21.02.04', userDivisionName: 'YGY MO', }, ]; selectedMember: any[] = [];Agregar un solo elemento
ngOnInit(): void { const selected = this.availableMember.find( (el) => el.userDivisionId === 333 ); this.selectedMember.push(selected); }Adición de varios elementos
ngOnInit(): void { const selected = this.availableMember.filter( (el) => el.userDivisionId === 333 || el.userDivisionId === 335 ); this.selectedMember = this.selectedMember.concat(selected); }Puede probar algo como a continuación, donde puede pasar la identificación de división a la llamada de function como selectMember(333) . Este es un enfoque dinámico. También puede transformar o sobrecargar esta función con más entradas para que coincida con userDivisionName o id en el futuro
const selectMember = (divisionId) => { availableMember.map(function(x) { if (x.userDivisionId === divisionId) selectedMember.push(x) }) }o variación de la función anterior
const selectMemberV2= (divisionId) => { selectedMember = availableMember.filter(x => x.userDivisionId === divisionId); }Código de trabajo
let availableMember = [{ "id": 18, "userDivisionId": 1, "userDivisionCode": "1", "userDivisionName": "DEPT. MARKETING & LOGISTIK" }, { "id": 26, "userDivisionId": 333, "userDivisionCode": "2.3.21.02", "userDivisionName": "YGY PO" }, { "id": 27, "userDivisionId": 335, "userDivisionCode": "2.3.21.02.04", "userDivisionName": "YGY MO" }, ]; selectedMember = []; // function to select member with different input const selectMember = (divisionId) => { availableMember.map(function(x) { if (x.userDivisionId === divisionId) selectedMember.push(x) }) } // call selectMember(333); //log console.log(selectedMember)