recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - boucle for, j'ai un problème

Il y a un tableau à l'extérieur de la boucle for et un objet à l'intérieur de la boucle for. Chaque fois que la boucle for rend une valeur d'attribut de l'objet égale à l'élément i correspondant du tableau, puis pousse l'objet dans le tableau vide, pourquoi les tableaux vides affichent-ils la même chose ? Oui, cela ne fonctionne pas même si j'enveloppe le for avec une fonction d'exécution de mots

某草草某草草2778 Il y a quelques jours756

répondre à tous(6)je répondrai

  • 为情所困

    为情所困2017-05-19 10:47:58

    Quand vous dites que la dernière partie du nouveau tableau est la même, voulez-vous dire que les éléments du tableau sont tous identiques ? Il devrait s'agir d'un problème de portée, qui devrait être résolu en utilisant des fermetures.

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:47:58

    Lorsque vous poussez l'objet dans le corps de la boucle dans le tableau vide, cela se produit-il à l'intérieur du corps de la boucle ou après sa fin, n'est-ce pas le contenu du tableau vide que vous avez mentionné ?

    répondre
    0
  • 高洛峰

    高洛峰2017-05-19 10:47:58

    let obj={a:1};
    let arr = [{a:1},{a:2},{a:3},{a:1,b:1}];
    let arr2 =[];
    for(let o of arr){
        if(o.a == obj.a){
            arr2.push(o);
        }
    }
    console.log(arr2);//arr2=[{a:1},{a:1,b:1}]

    Je suppose que la fonction décrite par l'affiche devrait être comme ça. Il n'y a pas de problème de fermeture. L'auteur peut-il publier le code ?

    répondre
    0
  • 黄舟

    黄舟2017-05-19 10:47:58

    J'ai également rencontré ce type de problème auparavant. Après avoir poussé les éléments en boucle d'une collection dans un tableau, j'ai finalement découvert que les éléments du tableau sont tous identiques. La raison n'est pas très claire. La solution est de commencer par pousser. les éléments bouclés dans la copie d'éléments, puis insérez la valeur obtenue par cette copie dans le tableau

     ;
    //此处只是随意举个例子
    var a=[1,2,3,4,5,6];
    var b=[];
    for(let o of a)
    {
        b.push(o.clone());
    }

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-19 10:47:58

    talk n'est pas cher , montre-moi le code

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:47:58

    n'a pas envoyé le code, c'est pour brosser un voyou

    répondre
    0
  • Annulerrépondre