Le code le plus simple pour l’intersection des matrices dans JavaScript (2/6)

Réponse 10 Tim Down

Pour les matrices contenant uniquement des chaînes ou des chiffres, vous pouvez faire quelque chose avec la classification, selon certaines des autres réponses. Pour le cas général des matrices d’objets arbitraires, je ne pense pas que vous puissiez éviter de le faire à long terme. Ce qui suit vous donnera l’intersection de tout nombre de matrices fournies sous forme de paramètres pour arrayIntersection:

var arrayContains = Array.prototype.indexOf ? function(arr, val) { return arr.indexOf(val) > -1; } : function(arr, val) { var i = arr.length; while (i--) { if (arr === val) { return true; } } return false; };function arrayIntersection() { var val, arrayCount, firstArray, i, j, intersection = , missing; var arrays = Array.prototype.slice.call(arguments); // Convert arguments into a real array // Search for common values firstArray = arrays.pop(); if (firstArray) { j = firstArray.length; arrayCount = arrays.length; while (j--) { val = firstArray; missing = false; // Check val is present in each remaining array i = arrayCount; while (!missing && i--) { if ( !arrayContains(arrays, val) ) { missing = true; } } if (!missing) { intersection.push(val); } } } return intersection;}arrayIntersection( , , ); // Gives ; 

Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *