js第八课——数组3.0

数组去重的三种方法

<script>
    // 方法1   数组方法  利用indexOf索引返回值
    {
        let arr1 = [1,2,1,3,4,5,6,3,3,1,2] ; 
        let arr2 = [] ;
        for ( let i = 0 ; i < arr1.length ; i ++ ){//循环出数组的每一个元素
            if (arr2.indexOf(arr1[i]) == -1 ) {//判断这个元素在不在数组arr2中
                arr2.push(arr1[i]); //不在的话往数组末尾添加新元素
            } 
        }
        console.log(arr2);
    }

    //方法2   对象方法      对象的键名不重复性
    {
        let arr = [1,2,1,3,4,5,6,3,3,1,2] ;
        let obj = {} ; 
        let arr1 = [] ;
        for ( let i = 0 ; i < arr.length ; i ++ ) {
            let key = arr[i] ;  //将数组中的元素赋值给键名
            obj[key] = arr[i] ; //将键值赋值给对应的键名,因为这是一个空的对象,所以都是往对象中添加键值对
        }                      //因为键名具有不重复性,在添加相同键名的键值对时,只会重复赋值
        for ( let a in obj ){   //在对象中循环
            arr1.push(parseInt(obj[a]));//取出键名对应的键值,将键值转化为数字类型,并添加到数组最后一个元素
        }
        console.log(arr1);
    }

    //方法3   集合方法  利用集合内元素不重复
    {
        let arr = [1,2,1,3,4,5,6,3,3,1,2] ;
        let set = new Set(arr);    //将数组转化为集合类型,集合具有自动去重
        console.log(Array.from(set));//集合是一种伪数组,再将集合转化为数组并打印
    }
</script>

数组创建

1.字面量创建数组   例:var arr = [] ;
2.内置构造函数创建数组 
    例: var arr = Array();
    new构造函数Array()方法
    a.传入一个参数 例:var arr = new Array(5);表示新数组长度为5
    b.传入多个参数 例:var arr = new Array(1,2,3,4);表示新数组的元素是1,2,3,4

--注--
    数组删除最后一个元素,还可以使数组的长度自减一个

数组方法

1.数组扁平化
    a.将数组转成字符串
    例:var arr = [1,2,3,4,5];
        console.log(arr.toString());
    b.join()方法
    例:var arr = [1,2,3,4,5];
        console.log(arr.join(""));
    --join()方法--
        join()方法括号内若没有写任何字符,默认为逗号","。
    c.把字符串转成数组
    例:var str = "abc-de-f";
        var arr =  str.split("-");
        console.log(arr);打印结果["abc","de","f"]

2.数组方法补充
    a.数组名.join(char);  数组中的元素以字符隔开,它的返还值是拼接之后的字符串
    例: var arr = [1,2,3,4,5] ;
        console.log(arr.join("-"));//1-2-3-4-5

    b.数组名.reverse();  将数组中元素正序变成倒序

    c.数组拼接 arr1.concat(arr2);  将数组arr2拼接到数组arr1后面
    多个数组拼接只需要用逗号隔开 例:arr1.concat(arr2,arr3);

    d.数组名.sort();方法  用sort();排序时,如果排序的数字大于9,需要在sort()方法中再添加一个函数
    例: var arr = [10,20,45,12,2,3];
        var res = arr.sort(function(a,b){
            //return b - a ; 返回的数组数字大小为倒序排列
            //return a - b ; 返回的数组数字大小为正序排列
        ]}) ;
    --注--
        单独用sort();方法排序时,主要是给数组中元素的第一个值的ASCII码排序

    对象数组与数组对象
        [{},{},{}]对象数组
        {a:[],b:[],c:[]}数组对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值