常用数组API

 一、改变原数组:

示例1:push()

<script>
        //push()小练习 底层探究(看push()方法底层是如何写的)
        var arr = [1, 2];
        Array.prototype.push = function() {
            for (var i = 0; i < arguments.length; i++) {
                this[this.length] = arguments[i];
            }
            return this.length;
        };

        arr.push(8, 14, 48);
        console.log(arr);
</script>

示例2:pop()

<script>
        
        var arr = [1, 2];

        // arr.pop(2); //注意:pop()里面不能传参,传参无效

        arr.pop();

        console.log(arr);
</script>

示例3:unshift()、shift()

 <script>
        //unshift()在数组前面添加元素;shift()在数组前面删除元素
        var arr = [1, 2];
        arr.unshift(0);
        arr.unshift(-2, -5);
        arr.shift();
        console.log(arr);
</script>

示例4:reverse()

<script>
        //reverse()逆转数组
        var arr = [1, 2, 3];
        arr.reverse();
        console.log(arr);
    </script>

示例5:splice()

 <script>
        //reverse()逆转数组
        var arr = [1, 2, 3, 5];
        //splice(从第几位开始,截取多少的长度,在切口处添加新的数据),结果返回截取后的"原数组"
        // arr.splice(1, 2);
        // arr.splice(1, 1, 0, 0, 0);
        arr.splice(3, 0, 4);
        arr.splice(-1, 1);
        console.log(arr);
    </script>

示例6:sort()

 <script>
        //sort() 在原数组的基础上进行排序
        var arr = [1, -2, 4, 0, -9, 15];

        //1.必须写两形参
        //2.看返回值:当返回值为负数时,前面的数放在前面;当为整数时后面的数在前;为0则不动
        arr.sort(function(a, b) {

            // if (a > b) { //升序
            //     return 1;
            // } else {
            //     return -1;
            // }

            return a - b; //升序
            // return b - a; //降序
        });
        console.log(arr);
</script>

给定一个有序的数组使其乱序输出:

 <script>
        //给一个有序的数组使其乱序
        var arr = [1, 2, 3, 4, 5, 6, 7];
        arr.sort(function() {
            return Math.random() - 0.5;
        });
        console.log(arr);
    </script>

对象排序:

<script>
        var obj = {
            name: 'jack',
            age: 17,
            sex: 'male',
            face: 'handsome'
        };

        var obj1 = {
            name: 'marry',
            age: 49,
            sex: 'female',
            face: 'amazing'
        };

        var obj2 = {
            name: 'zhang',
            age: 24,
            sex: 'male',
            face: 'handsome'
        };

        var arr = [obj, obj1, obj2];

        arr.sort(function(a, b) {
            // if (a.age > b.age) {
            //     return 1;
            // } else {
            //     return -1;
            // }

            return a.age - b.age; //升序
        });

        console.log(arr);
    </script>

按字符串长度排序:

<script>
        var arr = ['ase', 'desddw', 'a', 'hjegfuyoef', 'cgyye', 'hewgdeouwyipuewfhuiewfyw', '', 'ufgwepuifyew8ofudsuhcuidtwydtsaoidfjeowi', 'ggiuqindwhydwu'];
        arr.sort(function(a, b) {
            return a.length - b.length;
        });
        console.log(arr);
    </script>

按字节长度排序:

<script>
        function retBytes(str) {
            var num = str.length;

            for (var i = 0; i < str.length; i++) {
                if (str.charCodeAt[i] > 255) {
                    num++;
                }
            }
            return num;
        };

        var arr = ['ase', 'desddw', 'a', '我爱祖国', 'cgyye', 'hepuewfhuiewfyw', '', '迪丽热巴', 'ggiuqiydwu'];

        arr.sort(function(a, b) {
            return retBytes(a) - retBytes(b);
        });

        console.log(arr);
    </script>

 二、不改变原数组:

示例1:concat()

 <script>
        //x contact(y);将y数组拼接到x数组的后面
        var arr1 = [1, 2];
        var arr2 = [3, 4];
        console.log(arr1.concat(arr2));
    </script>

示例2:toString()

 <script>
        //toString();将数组转换成字符串
        var arr1 = [1, 2];

        var newArr = arr1.toString();
        console.log(newArr);
        console.log(typeof newArr);
        console.log(typeof arr1);
    </script>

示例3:slice()

 <script>
        //slice(从该位开始截取,截取到该位);
        var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        var newArr = arr1.slice(1, 5);
        console.log(newArr);

        var newArr1 = arr1.slice(1);
        console.log(newArr1);

        var newArr2 = arr1.slice(-5);
        console.log(newArr2);

        var newArr3 = arr1.slice();
        console.log(newArr3);
    </script>

示例4:join()

<script>
        //join();以什么作为分隔符将数组里的元素进行分隔从而形成新的字符串
        var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
        var newArr = arr1.join("!");
        console.log(newArr);
        console.log(typeof newArr);
    </script>

示例5:split()

 <script>
        //split();以某种方式将字符串拆分为数组
        var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];

        var newArr = arr1.join("-");
        console.log(newArr);
        console.log(typeof newArr);

        var newString = newArr.split("-");
        console.log(newString);
    </script>

合并字符串:

<script>
        var str = 'alibaba';
        var str1 = 'baidu';
        var str2 = 'tencent';
        var str3 = 'toutiao';
        var str4 = 'wangyi';
        var str5 = 'xiaowang';
        var str = 'nv';

        var arr = [str, str1, str2, str3, str4, str5];
        console.log(arr.join(""));
    </script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白小白从不日白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值