js合并多个数组并去重(整理)

约定不等于承诺〃 2021-09-15 12:08 744阅读 0赞
  1. var arr1 = ['a','b'];
  2. var arr2 = ['a','c','d'];
  3. var arr3 = [1,'d',undefined,true,null];
  4. //合并两个数组,去重
  5. var concat_ = function(arr1,arr2){
  6. //不要直接使用var arr = arr1,这样arr只是arr1的一个引用,两者的修改会互相影响
  7. var arr = arr1.concat();
  8. //或者使用slice()复制,var arr = arr1.slice(0)
  9. for(var i=0;i<arr2.length;i++){
  10. arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
  11. }
  12. return arr;
  13. }
  14. //合并多个数组,去重
  15. var concat = function(arr1,arr2,arr3){
  16. if(arguments.length <= 1){
  17. return false;
  18. }
  19. var concat_ = function(arr1,arr2){
  20. var arr = arr1.concat();
  21. for(var i=0;i<arr2.length;i++){
  22. arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
  23. }
  24. return arr;
  25. }
  26. var result = concat_(arr1,arr2);
  27. for(var i=2;i<arguments.length;i++){
  28. result = concat_(result,arguments[i]);
  29. }
  30. return result;
  31. }
  32. //合并多个数组,去重,排序
  33. var arr1 = [1,6,4,0];
  34. var arr2 = [8,20,7,4.5];
  35. var arr3 = [6,0,7,90,2];
  36. var concat = function(arr1,arr2,arr3){
  37. if(arguments.length <= 1){
  38. return false;
  39. }
  40. var concat_ = function(arr1,arr2){
  41. var arr = arr1.concat();
  42. for(var i=0;i<arr2.length;i++){
  43. arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
  44. }
  45. return arr;
  46. }
  47. var result = concat_(arr1,arr2);
  48. for(var i=2;i<arguments.length;i++){
  49. result = concat_(result,arguments[i]);
  50. }
  51. //排序
  52. function sortNumber(a,b){
  53. return a - b;
  54. }
  55. return result.sort(sortNumber);
  56. }

发表评论

表情:
评论列表 (有 0 条评论,744人围观)

还没有评论,来说两句吧...

相关阅读