web-dev-qa-db-fra.com

Déclarer un tableau vide en javascript

mettre à jour  

Mon code qui fonctionne. Quand la page est chargée

    product= [[],[]]; 

puis le code exécuté après l'appel ajax: 

$('#contextreload ul').each(function(i, ul) {
product.Push([]);
});

$('#contextreload ul').each(function(i, ul) {
  allline=i; 
  $('#reloadajax'+i+' li').each(function(lk, li) {
  var lilk = $(li).html();  product[i][lk]=lilk;

  // your code goes here
 });

  // your code goes here
});

Pour utiliser eval (); en réponse ajax pour cela, avec quelques modifications dans le fichier php? /endupdate

produit [0] = [1,2,3,4];

produit [1] = [a, b, x, z];

.

.

produit [10] = [extra, extra, extra, extra];

Lorsque je charge la page, celle-ci est exécutée: product= [[],[],[],[],[],[],[],[],[],[]]; 

Mais si je déclare cela, quand j'appelle ajax je peux Pousser ajouter des données uniquement à ce tableau (10 lignes) Si j'ai 11 lignes (product[10][0] et product[10][1]), les données supplémentaires ne seront pas ajoutées . Après un appel ajax, j'ai besoin des données supplémentaires : product= [[],[],[],[],[],[],[],[],[],[],**[11]**];

Cette fonction est parce que je veux mettre des données dans un tableau après avoir chargé des données ajax depuis un fichier php.

$('#contextreload ul').each(function(i, ul) {
 <strike> var product = $(ul).html();  </strike>
    allline = i; 

    $('#reloadajax'+i+' li').each(function(lk, li) {
        var lilk = $(li).html();  
        product[i][lk]=lilk;
        alert(lilk+lk);
        // your code goes here
    });
    // your code goes here
});


}
6
user3944364

Dans le succès de votre appel ajax, utilisez la fonction Push()

product.Push([]);

Cela ajoute un tableau au dernier index de product. Ainsi, l'index 10 est créé et vous avez des données supplémentaires. 

Si vous souhaitez ajouter un nombre dynamique de lignes, utilisez ce code:

var number_of_new_row = 11; // 11 for example, you can use any number >= 0
for(; number_of_new_row--;)
    product.Push([]);

Autrement 

Dans votre retour ajax, enregistrez la nouvelle longueur de votre tableau product dans une variable globale . Et utilisez-la avant votre boucle pour réinitialiser votre tableau et l'initialiser avec la nouvelle longueur.

var lengthArray = 10; // update the value in the callback of your ajax call

Et ta boucle:

var product = [];
for(; lengthArray--;)
    product.Push([]);

$('#contextreload ul').each(function(i, ul) {
    //<strike> var product = $(ul).html();  </strike>
    allline = i; 

    $('#reloadajax'+i+' li').each(function(lk, li) {
        var lilk = $(li).html();  
        product[i][lk]=lilk;
        alert(lilk+lk);
        // your code goes here
    });
    // your code goes here
});
6
R3tep

Remarque: cette ligne de votre code produit une chaîne, pas un tableau.

var product = $(ul).html();  //returns string not an array

vous avez besoin de quelque chose comme

var product_arr = {}; // an object or 
var product_arr = []; // an array
2
fedmich

Le code suivant utilisé pour déclarer un tableau vide en javascript

var product_arr = new Array(); //declaring empty array

console.log(product_arr);

1
Vijay