Skip to content

Instantly share code, notes, and snippets.

@GZShi
Created April 24, 2014 15:45
Show Gist options
  • Save GZShi/11259442 to your computer and use it in GitHub Desktop.
Save GZShi/11259442 to your computer and use it in GitHub Desktop.
交集
function mix(arrays) {
if (arguments.length < 1) return [];
var allElems = [];
var repeatRegStr = [];
for (var i = 0, len = arguments.length; i < len; ++i) {
if (i === 0) {
repeatRegStr.push('(-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|))');
} else {
repeatRegStr.push('\\1');
}
allElems = allElems.concat(arguments[i]);
}
allElems.sort(function(a, b) {
return a - b;
});
var allElemsStr = allElems.join(':') + ':';
var repeatReg = new RegExp(repeatRegStr.join(':') + ':', 'g');
var matchResult = allElemsStr.match(repeatReg);
return matchResult.map(function(e, i, a) {
return parseFloat(e);
});
}
console.log(mix([1, 2, 3, 4, 5, 6, 7, 8], [1, 3, 5, 7, 9], [1, 4, 7]));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment