En JS, nous rencontrons souvent le besoin de supprimer les données en double des tableaux. Nous introduisons ici quatre algorithmes pour réaliser la fonction de déduplication des tableaux JS. J'espère que cela pourra aider tout le monde.
Idée d'implémentation : créez un nouvel objet js et un nouveau tableau, et lors de la traversée du tableau entrant, déterminez si le la valeur est une clé d'objet js, sinon, ajoutez la clé à l'objet et placez-la dans un nouveau tableau.
//注意点: 判断 是否为js对象键时,会自动对传入的键执行“toString()”,不同的键可能会被误认为一样;例如: a[1]、a["1"] 。解决上述问题还是得调用“indexOf”。 //速度最快, 占空间最多(空间换时间) function unique(array){ var n = {}, r = [], len = array.length, val, type; for (var i = 0; i < array.length; i++) { val = array[i]; type = typeof val; if (!n[val]) { n[val] = [type]; r.push(val); } else if (n[val].indexOf(type) < 0) { n[val].push(type); r.push(val); } } return r; }
Idée d'implémentation : obtenez la valeur la plus à droite sans répétition et placez-la dans un nouveau tableau. (Lorsque des valeurs en double sont détectées, la boucle actuelle est terminée et le prochain tour de jugement de la boucle de niveau supérieur est entré)
function unique1(array){ var r = []; for(var i = 0, l = array.length; i<l; i++){ for(var j = i + 1; j < l; j++) if(array[i] == array[j]) j == ++i; r.push(array[i]); } return r; }
Idée d'implémentation : Passer Triez le tableau de manière à ce que les mêmes valeurs soient adjacentes après le tri, puis lors du parcours, ajoutez uniquement les valeurs qui ne sont pas des doublons de la valeur précédente au nouveau tableau.
//将相同的值相邻,然后遍历去除重复值 function unique2(array){ array.sort(); var re=[array[0]]; for(var i = 1; i < array.length; i++){ if( array[i] !== re[re.length-1]) { re.push(array[i]); } } return re; }
Idée d'implémentation : si le i-ème élément du tableau actuel apparaît d'abord dans une position autre que i dans le tableau actuel, alors cela signifie que le i-ième élément apparaît en premier dans le tableau actuel. L'élément i est répété et ignoré. Sinon, le tableau des résultats <入>
function unique3(array){ var n = [array[0]]; //结果数组 //从第二项开始遍历 for(var i = 1; i < array.length; i++) { //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if (array.indexOf(array[i]) == i) n.push(array[i]); } return n; }
En JS, vous rencontrez souvent le besoin de supprimer les données répétées dans le tableau. Ici, les quatre algorithmes sont présentés pour réaliser. la fonction du tableau JS. 1. L'algorithme le plus rapide : méthode d'appariement clé-valeur d'objet Idée d'implémentation : créer un nouvel objet js et un nouveau tableau, et lors de la traversée du tableau entrant. , déterminez si la valeur est la clé de l'objet js. Sinon, ajoutez la clé à l'objet et placez-la dans un nouveau tableau.
//注意点: 判断 是否为js对象键时,会自动对传入的键执行“toString()”,不同的键可能会被误认为一样;例如: a[1]、a["1"] 。解决上述问题还是得调用“indexOf”。 //速度最快, 占空间最多(空间换时间) function unique(array){ var n = {}, r = [], len = array.length, val, type; for (var i = 0; i < array.length; i++) { val = array[i]; type = typeof val; if (!n[val]) { n[val] = [type]; r.push(val); } else if (n[val].indexOf(type) < 0) { n[val].push(type); r.push(val); } } return r; }
function unique1(array){ var r = []; for(var i = 0, l = array.length; i<l; i++){ for(var j = i + 1; j < l; j++) if(array[i] == array[j]) j == ++i; r.push(array[i]); } return r; }
//将相同的值相邻,然后遍历去除重复值 function unique2(array){ array.sort(); var re=[array[0]]; for(var i = 1; i < array.length; i++){ if( array[i] !== re[re.length-1]) { re.push(array[i]); } } return re; }
function unique3(array){ var n = [array[0]]; //结果数组 //从第二项开始遍历 for(var i = 1; i < array.length; i++) { //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if (array.indexOf(array[i]) == i) n.push(array[i]); } return n; }
Suppression des données php mysql au niveau d'un million des données en double
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!