JS--数组

检测是否为数组
instanceof运算符或者Array.isArray()方法可以用来检测是否为数组
Array.isArray优先于instanceof
Array.isArray(参数)  H5新增的方法  ie9以上版本支持

添加数组元素方法
1.push()在外面数组的末尾添加一个或者多个数组元素
var arr=[1,2,3,];
arr.push(4,‘p’);//[1,2,3,'p]
console.log(arr.push(4,'p'));//4
push完毕之后,返回的结果是新数组的长度
2.unshift在数组的开头添加一个或多个数组元素
console.log(unshift('r',0));//6
//['r',0,1,2,3,4,'p']

删除数组元素
1.pop()可以删除数组最后一个元素
console.log(arr.pop());//pink
一次只能删除一个元素
pop完毕后返回的结果是删除的那个元素
原数组也会发生变化
2.shift()可以删除数组的第一个元素
一次只能删除一个元素
同上

    // 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
        var arr = [1500, 1200, 2000, 2100, 1800];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < 2000) {
                // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
            }
        }
 

数组排序
1. 翻转数组
        var arr = ['pink', 'red', 'blue'];
        arr.reverse();//['blue','red','pink']

2. 数组排序(冒泡排序)
        var arr1 = [13, 4, 77, 1, 7];
    arr1.sort();//[1,13,4,7,77]sort函数对于有十位数的数是这么排序的1和13最左边都是1放一起,7和77最左边都是7放一起
        arr1.sort(function(a, b) {
            //  return a - b; 升序的顺序排列
            return b - a; // 降序的顺序排列
        });
 

数组索引方法
方法名        说明
indexOf()    数组中查找给定元素的第一个索引
lastIndexOf()    在数组中的最后一个的索引
如果不存在,则返回-1
var arr = ['red', 'green', 'blue', 'pink', 'blue'];
console.log(arr.IndexOf('blue')); // 2
console.log(arr.lastIndexOf('blue')); // 4
console.log(arr.lastIndexOf('black')); // -1

数组去重(重要)
数组去重 ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 要求去除数组中重复的元素。
1.目标: 把旧数组里面不重复的元素选取出来放到新数组中, 重复的元素只保留一个, 放到新数组中去重。
2.核心算法: 我们遍历旧数组, 然后拿着旧数组元素去查询新数组, 如果该元素在新数组里面没有出现过, 我们就添加, 否则不添加。
3.我们怎么知道该元素没有存在? 利用 新数组.indexOf(数组元素) 如果返回时 - 1 就说明 新数组里面没有改元素
        // 封装一个 去重的函数 unique 独一无二的 
        function unique(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {//全等包括值和数据类型考虑到旧数组里有-1元素
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        // var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])
        console.log(demo);

数组转换为字符串
1.toString()
var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3
2. join(分隔符) 
        var arr1 = ['green', 'blue', 'pink'];
        console.log(arr1.join()); // green,blue,pink
        console.log(arr1.join('-')); // green-blue-pink
        console.log(arr1.join('&')); // green&blue&pink


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值