In JS müssen wir häufig doppelte Daten aus Arrays entfernen. Hier stellen wir vier Algorithmen vor, um die Funktion der Deduplizierung von JS-Arrays zu erreichen.
Implementierungsidee: Erstellen Sie ein neues js-Objekt und ein neues Array und bestimmen Sie beim Durchlaufen des eingehenden Arrays, ob das Der Wert ist ein js-Objektschlüssel. Wenn nicht, fügen Sie den Schlüssel zum Objekt hinzu und fügen Sie ihn in ein neues Array ein.
//注意点: 判断 是否为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; }
Implementierungsidee: Holen Sie sich den Wert ganz rechts ohne Wiederholung und fügen Sie ihn in ein neues Array ein. (Wenn doppelte Werte erkannt werden, wird die aktuelle Schleife beendet und die nächste Beurteilungsrunde der Schleife der obersten Ebene beginnt)
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; }
Implementierungsidee: Pass Sortieren Sie das Array so, dass nach dem Sortieren dieselben Werte nebeneinander liegen, und fügen Sie dann beim Durchlaufen nur Werte zum neuen Array hinzu, die keine Duplikate des vorherigen Werts sind.
//将相同的值相邻,然后遍历去除重复值 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; }
Implementierungsidee: Wenn das i-te Element des aktuellen Arrays zuerst an einer anderen Position als i im aktuellen Array erscheint, dann Dies bedeutet, dass das i-te Element Element i wiederholt und ignoriert wird. Andernfalls werden die Ergebnisse der Ergebnisse <入>
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; }
In JS müssen häufig wiederholte Daten im Array entfernt werden. Hier werden die vier Algorithmen vorgestellt die Funktion des JS-Arrays. 1. Der schnellste Algorithmus: Objekt-Schlüssel-Wert-Pairing-Methode Implementierungsidee: Erstellen Sie ein neues JS-Objekt und ein neues Array und durchlaufen Sie das eingehende Array Bestimmen Sie, ob der Wert der Schlüssel des js-Objekts ist. Wenn nicht, fügen Sie den Schlüssel zum Objekt hinzu und fügen Sie ihn in ein neues Array ein.
//注意点: 判断 是否为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; }
PHP-MySQL-Millionen-Datenentfernung doppelter Daten
Das obige ist der detaillierte Inhalt vonEntfernen Sie doppelte Daten aus dem JS-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!