问题与插入到一个数组

问题与插入到一个数组

问题描述:

问题与插入到一个数组

vm.categorias = function() { 
 
    ConectaVagas('get', 'categorias').then(function (val) { 
 
     vm.categorias = val; 
 
     for (var a = 0; a < vm.categorias.length; a++) { 
 
      console.log(a); // Here returns 0,1,2,3 (number with categories) 
 
      ConectaVagas('get', 'subcategoria', vm.categorias[a].id_categoria).then(function (val) { // List the subcategories related the categorie in loopfor 
 
       vm.subAplicar = val; 
 
       console.log(a); // Here returns the number 4 but i want returns 0, 1, 2, 3 and i do the insertion in arrayNova 
 
       vm.categoria[a].arrayNova = vm.subAplicar; 
 
      }); 
 
     } 
 
    }); 
 
}

我需要插入到所有子类对象vm.category [a]数组(arrayNova),但我不继:(

您需要附上在一个新函数中,第二次调用ConnectVagas,变量a总是打印为4,因为在javascript中,变量有一个函数作用域。为了纠正这个问题,创建一个带有参数current_item和a的匿名函数,不会因为创建而被覆盖一个新的功能范围。

vm.categorias = function() { 
    ConectaVagas('get', 'categorias').then(function(val) { 
    vm.categorias = val; 
    for (var a = 0; a < vm.categorias.length; a++) { 
     console.log(a); // Here returns 0,1,2,3 (number with categories) 
     var categorias_item = vm.categorias[a].id_categoria 
     (function(categorias_item, a) { 
     ConectaVagas('get', 'subcategoria', categorias_item.id_categoria).then(function(val) { // List the subcategories related the categorie in loopfor 
      vm.subAplicar = val; 
      console.log(a); // Here returns the number 4 but i want returns 0, 1, 2, 3 and i do the insertion in arrayNova 
      categorias_item.arrayNova = vm.subAplicar; 
     }); 
     })(categorias_item, a); 
    } 
    }); 
} 
+0

不错,tnx!对 :) – concas