• #学习笔记#——JavaScript 数组部分编程(四)


    7、合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组

    function concat(arr1, arr2) {
    return arr1.concat(arr2);
    }

    还是考察concat方法,不会修改原数组。

    8、在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组 

    function insert(arr, item, index) {
        var arrRight=arr.slice(index,arr.length);
        var arrLeft= arr.slice(0,index);
        var arrM=arrLeft.concat(item);
     return arrM.concat(arrRight);
    }

    这几道题坐下来,总结发现只要说“不修改数组”,基本都要用到concat方法和slice方法。

    9、统计数组 arr 中值等于 item 的元素出现的次数 

    function count(arr, item) {
        var count=0;
         for(var i=0;i<arr.length;i++){
              if(arr[i]==item){
                count++; 
              }        
          }
          return count;
    }

    10、找出数组 arr 中重复出现过的元素 

    function duplicates(arr) {
    
      var arrStr=arr.join(); 
        var result;
        for(var i=0;i<arr.length;i++)
            {
                if (arrStr.indexOf(arr[i]) != arrStr.lastIndexOf(arr[i]))
                    {
                        result.push(arr[i]);
                    }
                
            }
        return result;
    
    }

    自己先写的方法,测试后结果是,能找出重复的元素,但是显示的时候,显示的是所有重复的,即如下:

    显然不对,继续改进!!

    先这样 等我改好了,再回来接着写

    function duplicates(arr) {
       var tmp = [];  
       arr.concat().sort().sort(function(a,b){  
            if(a==b && tmp.indexOf(a) === -1) tmp.push(a);  
       });  
       return tmp; 
    }

    改进代码如上。通过率100%

  • 相关阅读:
    hdu4665 DFS
    hdu4665 DFS
    hdu4717 三分(散点的移动)
    POJ 2559 Largest Rectangle in a Histogram(单调栈) && 单调栈
    洛谷 P2347 砝码称重
    洛谷 P3009 [USACO11JAN]利润Profits
    洛谷 P2925 [USACO08DEC]干草出售Hay For Sale
    洛谷 P1616 疯狂的采药
    洛谷 P1086 花生采摘
    洛谷 P1048 采药
  • 原文地址:https://www.cnblogs.com/olive987/p/5756103.html
Copyright © 2020-2023  润新知