js中 数组相关函数

        // 重写添加push方法
        var arr = [1,2,3];
        Array.prototype.push = function () {
           for(var i = 0; i < arguments.length; i++) {
               this[this.length] = arguments[i];
           } 
           return this.length;
        }

        //重写删除pop方法 移除最后一位
        Array.prototype.pop = function () {
            this.length > 0 ? this.length = this.length - 1 : this.length = 0;
            return this.length;
        }
        // 重写unshift方法从前面添加
        Array.prototype.unshift = function () {
            var L = arguments.length + this.length - 1;
            for(var i = L; i > 0; i--) {
                if(i > arguments.length - 1){
                    this[i] = this[i - arguments.length];
                }else{
                    this[i] = arguments[i];
                }
            }
            return this.length;
        }

        var arr1 = [1,3,6,2,8,7];
        // sort函数
        // 1.必须写两形参
        // 2.看返回值 1)当返回值为负数时,那么前面的数放在前面
        //           2)为正数,那么后面的数在前面
        //           3)为0,不动
        // 冒泡排序
        arr1.sort(function (a, b) {
            // return a > b ? -1 : +1;
            return a - b; // 生序
            // return b - a;  //降序
        })


        // 给一个有序的数组,乱序
        var arr2 = [1,2,3,4,5,6,7];
        arr2.sort(function (a, b) {
            return Math.random() - 0.5;
        })
		var xiaoliu = {
            name : 'liu',
            age : 18,
            sex : 'male',
            face : 'handsome'
        }

        var xiaoli = {
            name : 'li',
            age : 28,
            sex : 'male',
            face : 'amazing'
        }

        var xiaoqin = {
            name : 'qin',
            age : 22,
            sex : 'male',
            face : 'handsome'
        }
        // 对象按年龄属性来排序
        var arr3 = [xiaoli, xiaoliu, xiaoqin];
        arr3.sort(function(a, b) {
            // return a.age - b.age;
            return (a["age"] - b["age"]);
        })

        //按字符串长度排序
        var arr4 = ['ac', 'bcd', 'cccc', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
        arr4.sort(function(a, b){
            return a.length - b.length;
        })
        //按字节长度
        function retBrtys(str) {
            var num = str.length;
            for(var i = 0; i < num; i++){
                if(str.charCodeAt(i) > 255){
                    num ++
                }
            }
            return num;
        }

        var arr5 = ['ac哈哈', 'bcd', 'cccc哈哈哈哈哈', 'dddd', 'asadasdafa', 'dsafdsfsafdsfds','s'];
        arr5.sort(function(a, b){
            return retBrtys(a) - retBrtys(b);
        })

		// 不改变原数组的方法
        // concat 连接两个数组,拼接完成后不会改变原数组
        arr6 = [1,2,3,4,5];
        arr7 = [6,7,8,9,10];
        arr6.concat(arr7);

        // slice() 1个参数 从该位一直截取
        //         2个参数 从该位截取到该位(1,2)从第一位截取一位
        //         0个参数 整个截取

        // join 按给定的字符连接 返回string
        // arr7.join("| ");

        // split()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值