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

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

小云云
小云云Original
2018-03-07 11:33:421756Durchsuche

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;
}
ES6-Methodenimplementierung

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

(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);
    }, [])
}

Verwandte Empfehlungen :
function flatten(arr) {
    var newArr = arr.toString().split(',');    return newArr.map(function(item){
        return +item;        // 将字符串转为数字
    });
}


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!

Stellungnahme:
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