Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung der Deduplizierung und Entflachung von JS-Arrays

Detaillierte Erläuterung der Deduplizierung und Entflachung von JS-Arrays

小云云
Freigeben: 2018-03-07 11:33:42
Original
1784 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die detaillierte Erklärung der Deduplizierung und Entflachung von JS-Arrays mit Ihnen geteilt, in der Hoffnung, dass sie allen helfen kann.

Array-Deduplizierung

var arr = [1, 43, 4, 3, 2, 4, 3]; // Nach dem Entfernen von Duplikaten
arr = [1, 43, 4, 3, 2]

Traditionelle Methode, für Schleifenimplementierung

function dedupe(arr) {
    var rets = [];    for (var i = 0; i < arr.length; i ++) {        if (!rets.includes(arr[i])) {
            rets.push(arr[i]);
        }
    }    return rets;
}// 方法二: forEach方法实现function dedupe(arr) {
    var rets = [];
    arr && arr.forEach(function(item){
        if (!rets.includes(item)){
            rets.push(item);
        }
    });    return rets;
}
Nach dem Login kopieren
ES6-Methodenimplementierung

// es6提供的新的数据结构Set,类似数组,但是成员的值都是唯一的,没有重复的值。function dedupe(arr) {
    var newSet = new Set(arr);  // arr变成了set的数据结构,并去除了其中重复的元素
    return Array.from(newSet);  // Array.from方法将set数据结构转为数组数据结构}
Nach dem Login kopieren
Array Abflachung

Array-Abflachung besteht darin, ein mehrstufiges verschachteltes Array-Array (die Verschachtelung kann eine beliebige Anzahl von Ebenen umfassen) in ein Array mit nur einer Ebene umzuwandeln

var arr = [ 1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7]; //Nach dem Entlüften

arr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];

(1) Implementierung der Schleifenrekursion

(2) Verwenden Sie Reduzieren, um den Code zu vereinfachen
// for循环,如果子元素还是数组,则递归调用该方法function flatten(arr) {
    var rets = [];    for(var i = 0; i < arr.length; i ++) {        if (Array.isArray(arr[i])) {
            rets = rets.concat(flatten(arr[i]));
        } else {
            rets.push(arr[i]);
        }
    }    return rets;
}// 使用forEachfunction flatten(arr) {
    var rets = [];
    arr && arr.forEach(function(item) => {
        if (Array.isArray(item)) {
            rets = rets.concat(flatten(item));
        } else {
            rets.push(item);
        }
    });    return rets;
}
Nach dem Login kopieren

(3) Wenn alle Array-Elemente Zahlen sind, können Sie die toString-Methode verwenden
function flatten(arr) {
    arr.reduce(function(pre, item){
        return pre.concat(Array.isArray(item) ? flatten(item) : item);
    }, [])
}
Nach dem Login kopieren

Verwandte Empfehlungen :
function flatten(arr) {
    var newArr = arr.toString().split(&#39;,&#39;);    return newArr.map(function(item){
        return +item;        // 将字符串转为数字
    });
}
Nach dem Login kopieren


Detaillierte Erläuterung der JS-Array-Deduplizierung und -Sortierung

,

Array-Deduplizierungsanalyse in JavaScript und Python

Beispiele Ausführliche Erläuterung mehrerer Ideen zur Deduplizierung von Javascript-Arrays

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Deduplizierung und Entflachung von JS-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage