Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der Deduplizierung und Entflachung von JS-Arrays
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
Traditionelle Methode, für Schleifenimplementierungvar arr = [1, 43, 4, 3, 2, 4, 3]; // Nach dem Entfernen von Duplikaten
arr = [1, 43, 4, 3, 2]
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(2) Verwenden Sie Reduzieren, um den Code zu vereinfachenarr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];
(1) Implementierung der Schleifenrekursion
// 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; // 将字符串转为数字 }); }
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!