Maison > Article > interface Web > Explication détaillée de la déduplication et de l'aplatissement du tableau js
Cet article partage principalement avec vous l'explication détaillée de la déduplication et du déaplatissement des tableaux js, en espérant qu'il puisse aider tout le monde.
Déduplication de tableau
var arr = [1, 43, 4, 3, 2, 4, 3]
// Après avoir supprimé les doublons
arr = [1, 43, 4, 3, 2]
Méthode traditionnelle, pour l'implémentation de la boucle
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; }
Implémentation de la méthode ES6
// es6提供的新的数据结构Set,类似数组,但是成员的值都是唯一的,没有重复的值。function dedupe(arr) { var newSet = new Set(arr); // arr变成了set的数据结构,并去除了其中重复的元素 return Array.from(newSet); // Array.from方法将set数据结构转为数组数据结构}
array Aplatissement
L'aplatissement d'un tableau consiste à convertir un tableau imbriqué à plusieurs niveaux (l'imbrication peut être n'importe quel nombre de niveaux) en un tableau avec un seul niveau
var arr = [ 1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7]
// Après déaplatissement
arr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];
(1) Implémentation de la récursion de boucle
// 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; }
(2) Utilisez réduire pour simplifier le code
function flatten(arr) { arr.reduce(function(pre, item){ return pre.concat(Array.isArray(item) ? flatten(item) : item); }, []) }
(3) Si les éléments du tableau sont tous des nombres, vous pouvez utiliser la méthode toString
function flatten(arr) { var newArr = arr.toString().split(','); return newArr.map(function(item){ return +item; // 将字符串转为数字 }); }
Recommandations associées :
Explication détaillée de la déduplication et du tri des tableaux js,
Analyse de la déduplication des tableaux en JavaScript et Python
Exemples Explication détaillée de plusieurs idées de déduplication de tableaux javascript
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!