js中数组的内置方法

6 篇文章 2 订阅
5 篇文章 0 订阅

传统方法

1)栈方法 “先进后出”
push(item,,item) 压栈 向数组末尾添加元素
pop() 出栈 删除数组末尾元素(删一个)

  // 栈方法
        var arr=[];
        arr.push(100);
        arr.push(200);
        arr.push(300);
        console.log(arr);//[100,200,300]
        arr.pop();
        arr.push('hello','world','hi');
        console.log(arr);//[100,200,'hello','world','hi']

2)队列方法 “先进先出”
push() 进队
shift() 出队 删除数组头部元素

 // 队列方法:
            var arr=[];
            arr.push(100);
            arr.push(2,3,4,6);
            console.log(arr);//[100,2,3,4,6]
            arr.shift();
            console.log(arr);//[2,3,4,6]

3)数组操作方法
concat(arr,arr) 合并数组
【注意】产生新数组,原数组不变;
concat()//复制数组

unshift(item,item) 在数组头部插入元素(item)
【注意】修改原数组
返回的为新数组的长度

splice(index,howmany) index:开始位置 howmany:从起始位置开始删除个数
【注意】
返回值为所删除的数据
修改原数组

splice(index,howmany,item,,,item) 删完以后将 item,,代替所删除的位置
【注意】 修改原数组
返回删除添加过后的数组

slice(start,end) 截取数组 [start,end)从开始截取到结尾(左闭右开)
【注意】不修改原数组,产生新数组
slice(0)//复制数组

 // 操作方法
        var arr=[100,200,300];
        var arrx=[102,30,40];
        var arr0=['hello','world'];
        var arr1=arr.concat(arr0,arrx);
        console.log(arr1);// [100, 200, 300, "hello", "world", 102, 30, 40]
        console.log(arr);//[100,200,300]
        console.log(arr0);//['hello','world']
        arr.unshift('我','是');
        console.log(arr);//['我','是',100,200,300]
        arr.splice(1,2);
        console.log(arr);//['我',200,300]
        arr1.splice(1,1,8,9,100);
        console.log(arr1);//[100, 8, 9, 100, 300, "hello", "world", 102, 30, 40]
        var arr2=[10,20,80,100];
        var arr4=arr2.slice(2,3);
        console.log(arr4);//[80];

4)排序方法
sort() 排序 升序
【注意】默认情况按照字符串排序(比较ASCII)
其他排序:需要将排序算法(函数形式)传入参数内
arr.sort(function(a,b){
return a-b;//升序
})
arr.sort(function(a,b){
return b-a;//降序
})
reverse() 颠倒数组
【注意】修改了原数组

      // 排序方法
        var arr=[100,80,90,200];
        arr.reverse();
        console.log(arr);//[200,90,80,100]
        var arr1=[9,8,1,2,5];
        var arr2=[10,20,5,9,8,30];

        arr1.sort();//排序   升序
        console.log(arr1);//[1, 2, 5, 8, 9]
        arr2.sort(function(a,b){
            if(a>b){
                return 1;
            }else if(a<b){
                return -1;
            }
            return 0;
        });
        // 升序
        arr2.sort(function(a,b){
            return a-b;
        });
        console.log(arr2);//[5, 8, 9, 10, 20, 30]

5)与字符串相关的方法
join(sp) 通过指定字符将数组拼接成字符串
注释:str.slipt(sp);//将字符串通过指定字符分割成数组
【注意】这两种方法可以将字符串和数组任意转换

  var arr=[100,200,300,400];
        // var str=arr.join('?');
        var str=arr.join(' ');//100 200 300 400
        console.log(str);

        var arr0=str.split(' ');//["100 200 300 400"]
        console.log(arr0);

新增方法

forEach(fn)遍历数组
fn:回调函数(自动执行,每遍历一次执行一次)
自身可以拥有三个参数:index(索引),item(元素),arr(数组)
indexOf()判断元素在数组中的位置
(若有重复,则只返回第一个元素的位置;返回位置,没有返回-1)
some(fn) :校验数组中是否有满足条件的元素
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回布尔类型)
every(fn)判断每一个元素是否满足条件
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回布尔类型)
filter(fn)检测数据,筛选过滤满足某个条件的元素
fn:回调函数 三个参数:index item arr 需要return语句(有返回值,返回一个新数组)
map()检测数据,筛选数据是否满足某个条件
fn:回调函数 三个参数:index item arr
需要return语句(有返回值,返回一个新数组,数组中是每个元素是否满足的布尔类型)
reduce(fn) :计算
参数:fn(total,item,index,arr)
初次状态:total(值为第一个元素)
其他:total(指的是最终结果)
需要return语句(有返回值,返回的是运算结果)
reduceRight() :功能和reduce一样(total是倒着计算)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值