Maison >interface Web >js tutoriel >js tutoriel - Implémentation et solution des erreurs de suppression de boucle de tableau
Une exigence simple consiste à supprimer les éléments qui ne remplissent pas les conditions dans le tableau.
L'implémentation initiale, foreach
boucle, s'est avérée erronée.
// 如果学科存在id if (discipline.id) { // foreach类别 angular.forEach(result, function(value, key) { // 如果该类别有对应学科(考虑到“请选择的情况下”会报从undefined上获取id) // 并且该学科类别id不等于传入学科id if (value.discipline && !angular.equals(value.discipline.id, discipline.id)) { // 移除不符合要求的元素 result.splice(key, 1); } }); }
Chaque fois que vous supprimez, il est supprimé selon key
, mais après la suppression, la longueur du tableau changera, ce qui fait que la prochaine fois que vous supprimerez selon key
, vous trouverez que la longueur a changé, la position de l'élément que nous voulons supprimer a également changé.
Dans Java
, nous utilisons la méthode iterator
pour obtenir son objet d'itération puis le modifier.
// 如果学科存在id if (discipline.id) { /** * 数组过滤 * 接收一个函数,根据该函数返回为true/false * 决定该元素保留还是删除 */ result = result.filter(function(value) { // 兼容请选择项,默认保留 if (!value.discipline) { return true; } // 保留器具类别的学科id与当前学科id相同的项 return angular.equals(value.discipline.id, discipline.id); }); }
Articles associés :
A Questions sur les boucles de tableau
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!