Javascript-内置对象Array

1.数组创建的两种方式: 

        var var1 = [1, 2, 'haah'];
        var arr1 = new Array();//空数组
        var arr2 = new Array(2);//长度为2,数组元素是空
        var arr3 = new Array(2, 3, '杨哈哈');//数组长度为3,且元素固定

2.检测是否为数组instanceof

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

        console.log(Array.isArray(arr));

3.添加数组元素

方法一:push在数组末尾进行增加

        1.Push是在元数组末尾进行增加
        var arr = [1, 2, 3];
        arr.push(4, 'pink');//末尾添加元素
        console.log(arr);
        console.log(arr.push(4, 'pink'));//返回push完数组的长度

        

方法二:unshift在数组前面追加元素

        arr.unshift('yanghaha');
        console.log(arr);
        console.log(arr.unshift(6, 6));//返回长度,同push
        console.log(arr);

3.删除数组元素

方法一:pop删除末尾元素

        arr.pop();//删掉最末尾,无参数
        console.log(arr.pop());//返回的是删除的那个元素
        console.log(arr);

方法二: shift删除开头元素

        arr.shift();//无参
        console.log(arr.shift());//返回的是删除的那个元素
        console.log(arr);

 该两种方法运行结果如下:

 

4.翻转、排序函数

        arr1 = [1, 2, 3];
        arr2 = [1, 5, 2, 7, 9, 3, 1];
        arr1.reverse();
        arr2.sort();
        console.log(arr1);
        console.log(arr2);

sort排序的弊端,它是从第一个数字开始比较的 

var arr3 = [13, 4, 77, 1, 7];
 console.log(arr3.sort());

sort弊端

解决:冒泡排序

        arr3.sort(function (a, b) {
            // return a - b;//升序
            return b - a;//降序
        })
        console.log(arr3);

arr.indexOf('..')从前面开始查找返回该数组元素的下标,只满足第一个满足条件的索引,如果没有该元素返回-1

arr.lastIndexOf('..')从后面开始查找该元素返回下标,找不到返回-1

5.数组去重案例(部分面试

核心算法遍历旧元素,拿旧数组查询新数组,在新数组中没出现过添加,出现过则不添加

        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 = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
        console.log(unique(arr));

我的第一反应是立flag,用两重循环,j来遍历新数组

        var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
         var newArray = [];
         for (var i = 0; i < arr.length; i++) {
             var flag = 0;
             for (var j = 0; j <= newArray.length; j++) {
                 if (arr[i] == newArray[j]) {
                     flag = 1;
                     break;

                 }
             }
             if (!flag) {
                 newArray[newArray.length] = arr[i];
             }

         }
         console.log(newArray);

6.数组转换成字符串

        var arr5 = [1, 2, 3];
        console.log(arr5.toString());//1,2,3
        join分隔符,
        console.log(arr5.join());//默认是逗号
        console.log(arr5.join('-'));
        console.log(arr5.join('&'));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值