• [放鞭炮][福]玉竹斑斑节日快乐![福][放鞭炮] 2019-05-23
  • 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 山西体彩11选5任五遗漏:Javascript之高级数组API的使用实例

    山西体彩11选5直选遗漏 www.caxru.com  更新时间:2019年03月08日 11:15:29   作者:MagicFairyLiu   我要评论

    今天小编就为大家分享一篇关于Javascript之高级数组API的使用实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    JS中我们可以根据需求新建新的对象解决问题的同时,也有一些常用的内置对象供我们使用,我们称之为API,本篇文章只是对数组部分进行了练习。

    例一:伪数组,不能修改长短的数组(所以没办法清零),可以修改元素,代码实现如下:

    <script>
    fn(1,2);
      fn(1,2,3,4,5,6);
      fn(1,2,4,5,7,9,4);
      function fn(a,b){
      arguments[0]=0;
      console.log(arguments);
      arguments.push(1);
      console.log(arguments instanceof Array);
      console.log(arguments.length);//实参个数
      console.log(fn.length);//形参个数
      console.log(arguments.callee);//整个函数,包括注释
      }
    </script>

    伪数组打印的是实参,而普通函数调用打印的是形参,并且打印它的函数类型,我们发现它的类型显示并不是数组。

    例二:将一个字符串数组输出为|分割的形式,比如“刘备|张飞|关羽”。使用两种方式实现

    方法一:不利用内置对象,进行字符串拼接,由于第一个元素前没有特殊符号,首先将其赋值后,循环从下一个元素开始遍历

    <script>
    var arr=["刘备","张飞","关羽"];
    var str=arr[0];
    for(var i=1;i<arr.length;i++){
      str+="|"+arr[i];
    }
    console.log(str);
    </script>

    方法二:使用内置对象直接改变间隔符号

    <script>
    var arr=["刘备","张飞","关羽"];
    var str=arr.join("|");
    console.log(str);
    </script>

    两种方法进行对比,我们发现第一种方法使之产生了大量内存,导致内存浪费情况,从此看出对我们来说内置对象的使用帮我们解决了内存浪费的缺点。

    例三:将一个字符串数组的元素的顺序进行反转。["a","b","c","d"] ->["d","c","b","a"]。使用两种种方式实现。

    方法一:之前文章介绍过的方法

    <script>
    var str1=["a","b","c","d"];
    var str2=[];
    for(var i=0;i<str1.length;i++){
      str2[str1.length-i-1]=str1[i];
    }
    console.log(str2);
    </script>

    方法二:直接使用内置对象reverse()解决

    <script>
    var str1=["a","b","c","d"];
    console.log(str1.reverse());
    </script>

    例四:工资的数组[1500,1200,2000,2100,1800],把工资超过2000的删除

    使用内置对象filter()实现题目需求。

    <script>
    var arr=[1500,1200,2000,2100,1800];
    var arr1=arr.filter(function(element,index,array){
      if(element<=2000){
        return true;
      }
      return false;
    })
    console.log(arr1);
    </script>

    例五:["c","a","z","a","x","a"]找到数组中每一个元素出现的次数

    由于题目给出字符形式,让我们求出的相应字符的个数为数字形式,这让我们应用json更方便问题解决,将题目给出的字符作为“键”,将次数作为“键值”,来判断数组中的元素,在json中是否存在属性值,如果存在,在原有基础上加上1;如果不存在直接赋值为1。

    <script>
    var arr=["c","a","z","a","x","a"];
    var json={};
    for(var i=0;i<arr.length;i++){
        if(json[arr[i]]!==undefined){
          json[arr[i]]+=1;
        }else{
          json[arr[i]]=1;
        }
    }
    console.log(json);
    </script>

    例六:编写一个方法 去掉一个数组的重复元素

    方法一:新建数组,将原数组第一个元素push进入新数组。遍历原数组的每一个元素使之在新数组每一个元素中都不存在(嵌套两层for循环),就push进入原数组,否则就跳出新数组循环,进入原数组的下一个元素循环。

    <script>
    var arr=[3,2,4,5,5,3,5,568,4,21,7];
    var arr1=fn(arr);
    function fn(array){
      var arr2=[];
      arr2.push(array[0]);
      abc:for(var i=0;i<array.length;i++){
        for(var j=0;j<arr2.length;j++){
          if(arr2[j]==array[i]){
            continue abc;
          }
        }
        arr2.push(array[i]);
      }
      return arr2;
    }
    console.log(arr1);
    </script>

    方法二:创建一个新数组,循环遍历,只要新数组中有旧数组的值,就不要在添加。每次都要判断新数组中是否有旧数组的值,保证旧数组的元素和新数组中每一个都不相等,则赋值给新数组的下一元素的值。

    <script>
    var arr=[1,2,3,4,5,2,3,4];
    console.log(arr);
    console.log(fn(arr));
    function fn(array){
      var newArr=[];
      for(var i=0;i<array.length;i++){
        var bool=true;
        for(var j=0;j<newArr.length;j++){
          if(array[i]===newArr[j]){
            bool=false;
          }
        }
        if(bool){
          newArr[newArr.length]=array[i];
        }
      }
      return newArr;
    }
    </script>

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    相关文章

    最新评论

  • [放鞭炮][福]玉竹斑斑节日快乐![福][放鞭炮] 2019-05-23
  • 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 福彩3d阿福图库 北京pk赛车是不是真的 北京赛车pk10计划群 大乐透走势图带坐标 福利彩票销售技巧 苏州快三有规律 双色球随机选号 走势图排列5 北京pk10的黄金切割法 超级大乐透玩法示意图 新疆时时彩三基本和值 今天喜乐彩开奖结果 今晚3d试机号彩宝网 奥地利秒速时时彩规则 黑龙江时时彩五星走势图 老时时彩0613