Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

389
Vistas
¿Cómo puedo usar las funciones de AngulsJS para simplificar un bucle for?

Tengo el siguiente ciclo y me preguntaba si hay una forma más eficiente de hacerlo en AngularJS. Entonces, quiero recorrer cada elemento en ListA y si no existe en ListB, entonces quiero empujar el elemento de ListA a ListB. Pero el descanso; detiene el ciclo, no pasa por todos los elementos en ListA

 for (item of $scope.ListA) { let found = false; for (obj of $scope.ListB) { if (obj.Name == item.Name && obj.Field == item.Field && obj.DisplayName == item.DisplayName) { found = true; // console.log("double found !"); break; } } if (!found) $scope.ListB.push(newObj); }

¿Cómo puedo hacer esto usando las funciones de AngularJS?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No sé si hay alguna funcionalidad específica de angularjs, pero suponiendo que ListA y ListB solo sean matrices de JavaScript, puede usar métodos de matriz estándar para simplificar su solución.

Por ejemplo, aquí uso array.filter , array.some y ... spread operator:

 // Scope example const $scope = { ListA: [ { Name: 'name1', Field: 'field1', DisplayName: 'displayName1' }, { Name: 'name2', Field: 'field2', DisplayName: 'displayName2' }, { Name: 'name3', Field: 'field3', DisplayName: 'displayName3' }, ], ListB: [ { Name: 'name2', Field: 'field2', DisplayName: 'displayName2' }, { Name: 'name4', Field: 'field4', DisplayName: 'displayName4' }, ], }; // A function that checks if a list contains an item const hasItemInList = (item, list) => { // Here we use "array.some" method, which returns "true" if condition is true for any of the array items return list.some(listItem => listItem.Name == item.Name && listItem.Field == item.Field && listItem.DisplayName == item.DisplayName ); } // Getting the array of items that should be added to the listB, // Here we use "array.filter" to filter the items of array by provided condition const itemsToAdd = $scope.ListA.filter(item => !hasItemInList(item, $scope.ListB)); // And here we push all the items to the listB, // we use a spread operator "..." here to push all the items of array at once $scope.ListB.push(...itemsToAdd); console.log($scope.ListB);

Métodos de matriz: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda