js收官数组,foeach,fifter,map,some,every,reduce方法

//类数组变数组方法 Array.from     [].slice.call(类数组)
        var personArr = [{
            name: "妄想",
            src: "./sasdafasf",
            des: "asfaf",
            sex: "m",
            age: 19
        }, {
            name: "asdaf",
            src: "./sasdafasa",
            des: "asfah",
            sex: "f",
            age: 20
        }, {
            name: "gdagag",
            src: "./sasdafasb",
            des: "asfag",
            sex: "a",
            age: 25
        }, {
            name: "wrgsd",
            src: "./sasdafasc",
            des: "asfaf",
            sex: "c",
            age: 19
        }, {
            name: "asfasg",
            src: "./sasdafasd",
            des: "asfae",
            sex: "f",
            age: 21
        }];
        //foeach  遍历方法
        // Array.prototype.myFoEach = function(func) {
        //     var len = this.length;
        //     var _this = arguments[1] != undefined ? arguments[1] : window;
        //     for (var i = 0; i < len; i++) {
        //         func.apply(_this, [this[i], i, this]); //他执行完apply之后才能改变this指向所以这的this还是以前的this
        //     }
        // }
        // obj = {
        //     name: "asf"
        // };
        // personArr.myFoEach(function(ele, index, self) {
        //     // console.log(ele, index, self, this);
        // });
        //fifter  过滤方法封装
        // Array.prototype.myFilter = function(func) {
        //     var arr = [];
        //     var len = this.length;
        //     var _this = arguments[1] != undefined ? arguments[1] : window;
        //     for (var i = 0; i < len; i++) {
        //         func.apply(_this, [this[i], i, this]) && arr.push(this[i]);
        //     }
        //     return arr;
        // }
        // var obj = {
        //     name: "cse"
        // }
        // var newArr = personArr.myFilter(function(ele, index, self) {
        //     return ele.sex == "f";
        // })
        // console.log(newArr);


        //map方法  map映射,他的返回值决定了新数组中的值
        // Array.prototype.myMap = function(func) {
        //     var len = this.length;
        //     var arr = [];
        //     var _this = arguments[1] != undefined ? arguments[1] : window;
        //     for (var i = 0; i < len; i++) {
        //         arr.push(func.apply(_this, [this[i], i, this]));
        //     }
        //     return arr;
        // }
        // var newArr = personArr.myMap(function(ele, index, self) {
        //     ele.age += 10;
        //     return ele;
        // })
        // console.log(newArr);

        //
        //every 目的:判断数组中的元素是否都符合 返回true或false(有一个false就不循环了)
        // some 有一个符合就返回true(有一个true就不循环了)
        // Array.prototype.myEvery = function(func) {
        //     var len = this.length;
        //     var _this = arguments[1] != undefined ? arguments[1] : window;
        //     var flag = true;
        //     for (var i = 0; i < len; i++) {
        //         if (func.apply(_this, [this[i], i, this]) == false) {
        //             flag = false;
        //             break;
        //         }
        //     }
        //     return flag;
        // }
        // var newArr = personArr.myEvery(function(ele, index, self) {
        //     return ele.age > 18;
        // })
        // console.log(newArr);

        //reduce方法  preValue 前一个值  icurValue当前值 index下标 self自己
        // var obj = {
        //     age: 0
        // }

        // var returnValue = personArr.reduce(function(preValue, icurValue, index, self) {
        //         return preValue; //返回的是什么就决定了下一次函数执行的时候preValue是什么   
        //     }, obj) //preValue最开始的值就是obj的初始值
        // console.log(returnValue); //最后一次函数返回的值

        // reduce用法例子(不能改变this指向)
        //原生reduce方法封装
        // Array.prototype.myReduce = function(func, initialVlaue) {
        //     var len = this.length,
        //         nextValue = initialVlaue;
        //     for (var i = 0; i < len; i++) {
        //         nextValue = func(nextValue, this[i], i, this);
        //     }
        //     return nextValue;
        // }

        var cookieStr = "_ga=GA1.3.1508234119.1621843762; __gads=ID=52b80f6701c2b0f3-22ef5a0cd9c80005;T=1621843761;RT=1621843761;S=ALNI_MYrNpENnlV5PqCm2CLfHRA0LYiW7g; _gid=GA1.3.50017673.1626517288; ASPSESSIONIDSWSBBASD=GPBICAADHFLHCOPELEMDGEEJ; _gat33_1=1"
            //给cookieStr变成一个对象
        function parseCookieStr(str) {
            var obj = {};
            var cookieArr = str.split(';');
            cookieArr.reduce(function(preValue, icurValue, index, self) {
                var arr = icurValue.split("=");
                preValue[arr[0]] = arr[1];
                return preValue;
            }, obj)
            return obj;
        }
        var cookieObj = parseCookieStr(cookieStr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小兔子的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值