javascript - Demandez : Comment supprimer les éléments de tableau sélectionnés dans Vue (lorsqu'il y a plusieurs sélections) ?
我想大声告诉你
我想大声告诉你 2017-05-19 10:35:09
0
3
1003

Les données sont simulées. Lorsque je clique sur Modifier, je souhaite supprimer les éléments sélectionnés. Autrement dit, si un est sélectionné, un sera supprimé. Si plusieurs éléments sont sélectionnés, plusieurs éléments seront supprimés. le tableau sera supprimé. Les éléments ont un attribut
par défautchecked.

Adresse démo

structure HTML

全部商品

{{ showtext ? '编辑' : '完成' }}

code js

var vm = new Vue({ el : ".t-root", data : { showtext : true, shoppingList : [ { id : 11, title : '贡牌茶叶西湖春茶正宗雨前龙井茶礼盒装礼盒装160g礼盒装', money : 48, imgsrc : 'images/download-order-img-11@2x.png', shoppingnum : 1, checked : true }, { id : 22, title : '贡牌茶叶西湖春茶正宗雨前龙井茶礼盒装礼盒装160g礼盒装', money : 98, imgsrc : 'images/download-order-img-11@2x.png', shoppingnum : 1, checked : true }, { id : 33, title : '贡牌茶叶西湖春茶正宗雨前龙井茶礼盒装礼盒装160g礼盒装', money : 148, imgsrc : 'images/download-order-img-11@2x.png', shoppingnum : 1, checked : true } ] }, computed : { }, methods : { editorShopping : function(){ this.showtext = !this.showtext; }, removeShopping : function(){ var that = this; that.shoppingList.forEach(function(value,index){ //只有为true时才删除 if (value.checked) { that.shoppingList.splice(index,1); // console.log(index); } }); }, add : function(index){ var shopping = this.shoppingList[index]; if (shopping.shoppingnum == 100) { return false; }else { shopping.shoppingnum ++; } }, reduce : function(index){ var shopping = this.shoppingList[index]; if (shopping.shoppingnum == 1){ return false; }else { shopping.shoppingnum --; } } } });
我想大声告诉你
我想大声告诉你

répondre à tous (3)
伊谢尔伦

Lors de la suppression d'éléments de tableau par lots dans JS, vous devez les supprimer dans l'ordre inverse (c'est-à-dire supprimer d'abord les éléments avec un grand index, puis supprimer les éléments avec un petit index),
Parce que l'index du Le tableau changera pendant le processus de suppression, si vous supprimez d'abord les petits éléments, l'index des éléments suivants changera
J'ai écrit une démo simple :

.
     

  • {{value}}

    我想大声告诉你

    Changez votre façon de penser, ne supprimez pas, le filtrage est plus simple et plus intuitif.

    // 直接过滤更简单,直观 var arr = [{a:1,c:true},{a:2,c:false},{a:3,c:true}] arr = arr.filter(function(i){ return !i.c }) console.log(arr) // {a:2,c:false}
      黄舟

      Déjà résolu !
      Adresse de référence
      Utiliser la boucle inversée

      removeShopping : function(){ var that = this; for (var i = that.shoppingList.length - 1;i >= 0;i--) { var index = that.shoppingList[i]; if (index.checked) { that.shoppingList.splice(i,1); } } }
        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!