小言_互联网的博客

JavaScript-数组常用方法(1)

326人阅读  评论(0)

forEach()
需要一个函数做参数:

  • 像这种函数由我们创建但不由我们调用 成为回调函数
  • 数组有几个元素 函数执行几次,每次执行时,浏览器会将遍历到的元素
  • 以实参的形式传递进来 我们可以定义形参 来读取这些内容
  • 浏览器会在回调函数中传3个参数
var arr=["孙悟空","唐僧","沙和尚","猪八戒"];
   arr.forEach(function(value,index,obj){
    console.log(value);//打印遍历到的值
    console.log(index);//值对应的索引
    console.log(obj); //打印整个数组
   });

slice()
截取一个新数组:

var arr2=arr.slice(0,2);//返回一个新数组 包含开始索引 不包含结束索引
   console.log(arr2);
   arr2=arr.slice(1);//一个参数就是从当前到最后
   console.log(arr2);
   //可以传一个负数 表示倒数第几个
   arr2=arr.slice(1,-1);
   console.log(arr2);

splice()
splice影响原数组 并将指定元素从原数组中删除
并将删除的元素作为返回值返回:

 arr2=arr.splice(0,2);//第一个表示开始位置的索引 第二个表示删除的数量
     console.log(arr2);
     console.log(arr);

push()和pop()
在尾部插入一个数据和在尾部删除一个数据

unshift()
在头部插入一个数据:

arr.unshift("唐僧");
     arr.unshift("孙悟空");
   console.log(arr);

shift()
删除数组第一个元素

splice重载

arr.splice(0,1,"牛魔王");//删除第一个元素并将牛魔王插入到第一个参数指定的位置
console.log(arr);

concat()
连接函数 可连接二个到多个

   var arr=["孙悟空","猪八戒","沙和尚"];
   var arr2=["孙悟空","猪八戒","沙和尚"];
   var result=arr.concat(arr2);
   console.log(result);
   var arr3=["孙悟空","猪八戒","沙和尚"];
   result=arr.concat(arr2,arr3,"牛魔王");
   console.log(result);

join()
将一个数组转换成字符串
在join中可以指定一个参数作为字符串的连接符
不指定就为逗号
不影响原数组

     result=arr.join();
     console.log(result);
     result=arr.join(".");
     console.log(result);

reverse()
转置数组

     arr.reverse();
     console.log(arr);//影响原数组

sort()
排序数组

  • 即使对纯数字排序也会按照Unicode编码排序
    • 所以对纯数字排序可能会错误
    • 我们可以自己指定排序规则
    • 可以在sort函数中添加一个回调函数 来指定排序规则
    • 回调函数中需要定义二个参数,
    • 浏览器会分别使用数组中的元素作为实参去调用回调函数
    • 返回大于0交换元素
    • 返回小于0不交换
    • 返回0 不交换
     arr=["f","e","c","v"];
     arr.sort();//影响原数组
     console.log(arr);
     
     arr=[3,11,4,7,8];
     arr.sort();
     console.log(arr);
     arr=[5,4];
     
   arr.sort(function(a,b){
    /*if(a>b){
     return 1;
    }else if(a<b){
     return -1;
    }else{
     return 0;
    }*/
    return b-a;
   });
   console.log(arr);

转载:https://blog.csdn.net/qq_42193790/article/details/104629652
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场