common.js 744 B

12345678910111213141516171819202122232425262728293031
  1. //数组的笛卡尔积
  2. function descartes(args){
  3. if(args == undefined) return null;
  4. var len = args.length;
  5. if(len == 1){
  6. return args[0];
  7. }else{
  8. var tem = new Array();
  9. tem = group(args[0],args[1]);
  10. for(var i=2;i<len;i++){
  11. tem = group(tem,args[i]);
  12. }
  13. var result = new Array();
  14. var tem_len = tem.length;
  15. num = 0;
  16. for(var i = 0;i < tem_len;i++){
  17. result[num++] = tem[i].split('*#*');
  18. }
  19. return result;
  20. }
  21. }
  22. function group (m,n){
  23. var tem = new Array();
  24. var num = 0;
  25. for(var i=0;i<m.length;i++){
  26. for(var j=0;j<n.length;j++){
  27. tem[num++] =m[i]+'*#*'+n[j];
  28. }
  29. }
  30. return tem;
  31. }