JS数组使用

目录

创建数组两种方式

求数组中的最大值 

新增数组元素

通过循环追加给空数组赋值 

把旧数组大于10的元素放到新数组里

数组翻转

检测是否为数组

添加删除数组元素的方法

数组排序

查找数组中元素索引

数组去重                                                                                                                   

数组转换成字符串

数组元素的连接、截取和删除

查字符串中同一个字母出现的索引和次数

根据位置返回字符(重点)

案例:

字符串操截取和连接(重点)

替换字符串 replace(‘被替换的字符’,‘替换为的字符’)

字符串转换为数组 split(‘分隔符’)


创建数组两种方式

  • var arr = new Arrar(); [利用new关键字创建
  • var arr = [ ];

求数组中的最大值 

<script>
      var arr = [1, 2, 7, 4, 6];
      var max = arr[0];
      for (i = 1; i < arr.length; i++) {
        if (max < arr[i]) {
          max = arr[i];
        }
      }
      alert(max);
    </script>

新增数组元素

  • arr[ 索引] = " " ;  (如果索引是当前数组有的就修改,没有的就追加)

通过循环追加给空数组赋值 

 var arr = [];
      for (i = 0; i < 10; i++) {
        arr[i] = i + 1;
      }
      console.log(arr);

把旧数组大于10的元素放到新数组里

<script>
      var arr = [1, 5, 7, 88, 55];
      var arr1 = [];
      for (i = 0; i < arr.length; i++) {
        if (arr[i] > 10) {
          arr1[arr1.length] = arr[i];
        }
      }
      console.log(arr1);
    </script>

数组翻转

<script>
      var arr = [1, 5, 7, 88, 55];
      var newArr = [];
      for (i = arr.length - 1; i >= 0; i--) {
        newArr[newArr.length] = arr[i];
      }
      console.log(newArr);
    </script>

检测是否为数组

  1. instanceof
  2. Array.isArray(参数)  ie9以上支持

          var arr = [];
          var obj = {};
          console.log(obj instanceof Array); //false
          console.log(Array.isArray(arr)); //true

    添加删除数组元素的方法

          var arr = [1, 2, 3];  

          console.log(arr.push(4, "pink"));

          console.log(arr.pop());

    方法名说明返回值
    push(参数1...)末尾添加一个或多个元素并返回新数组长度
    pop()删除数组最后一个元素,把数组长度减1,一次只能删一个返回删除元素的值
    unshift(参数1...)向数组的开头添加一个或多个元素返回新的长度
    shift()删除数组的第一个元素,数组长度减1无参数,修改原数组并返回第一个元素的值

    数组排序

    方法名说明是否修改原数组
    reverse()颠倒数组中元素的顺序该方法会改变原来的数组,返回新的数组
    sort()对数组的元素进行排序该方法会改变原来的数组,返回新的数组
     var arr = [15, 120, 21, 170];
          arr.reverse();
    
          var arr1 = [13, 4, 76, 9];
          arr1.sort(function (a, b) {
            return a - b;
            //return b - a; //降序
          });
          console.log(arr1);

    查找数组中元素索引

    str.indexOf 完整用法('要查找的字符',[起始位置的索引] )

    方法名说明返回值
    indexOf()数组中查找给定元素的第一个索引(数组中可能存在重复的元素)存在返回索引号,不存在则返回-1
    lastIndexOf()数组中查找给定元素的最后一个索引存在返回索引号,不存在则返回-1

    数组去重                                                                                                                   

 遍历旧数组(需要去重的数组),然后拿着旧数组元素去查询新数组,如果该元素在新数组里没有出现过,就添加,否则不添加。

 function unique(arr) {
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
          if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
          }
        }
        return newArr;
      }

      var arr = unique([15, 120, 21, 15, 15]);
      console.log(arr);

数组转换成字符串

方法名说明返回值
toString()把数组转换成字符串,逗号分隔每一项返回一个字符串
join('分隔符‘)把数组中的所有元素转换为一个字符串

返回一个字符串

数组元素的连接、截取和删除

方法名说明返回值
concat()连接两个或多个数组,不影响原数组返回一个新数组
slice数组截取slice(begin,end)返回被截取的数组
splice()数组删除splice(第几个开始,要删除个数)返回被删除后的新数组,这个会影响新数组

查字符串中同一个字母出现的索引和次数

 var str = "abcodefgohijklmnopqrstuovwxyzo";
      var index = str.indexOf("o");
      var num = 0;
      while (index !== -1) {
        console.log(index);
        num++;
        index = str.indexOf("o", index + 1);
      }
      console.log("0出现的次数是:" + num + "次");

根据位置返回字符(重点)

方法名说明使用
charAt(index)返回指定位置的字符(index字符串的索引号)str.charAt(0)
charCodeAt(index)获取指定位置处字符的ASCII码(index索引号)str.charCodeAt(0)
str[index]获取指定位置处字符HTML5,IE8+支持和charAt()等效

案例:

判断一个字符串‘abcoefoxyozzopp’中出现次数最多的字符,并统计其次数

 var str = "abcoefoxyozzopp";
      var o = {};
      for (var i = 0; i < str.length; i++) {
        var chars = str.charAt(i);
        if (o[chars]) {
          // c[chars]返回的是属性值
          o[chars]++;
        } else {
          o[chars] = 1;
        }
      }
      console.log(o);
 var max = 0;
      var ch = "";
      for (var k in o) {
        //k得到的是 属性名
        //o[k] 得到的是属性值
        if (o[k] > max) {
          max = o[k];
          ch = k;
        }
      }
      console.log(max);
      console.log("最多的字符是" + ch);

字符串操截取和连接(重点)

方法名说明
concat(str1,str2,str3concat()方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用
substr(start,length)从start位置开始(索引),length取得个数
slice(start,end)从start位置开始,截取到end位置,end取不到
substring(start,end)从start位置开始,截取到end位置,end取不到 基本和slice相同,但不接受负值

替换字符串 replace(‘被替换的字符’,‘替换为的字符’)

只会替换第一个字符,替换所有用循环

 var str = "abaasdffgghhjjkkgfddssss344343";
      while (str.indexOf("g") !== -1) {
        var str = str.replace("g", "22");
      }
      console.log(str);

字符串转换为数组 split(‘分隔符’)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值