美文网首页
js数组对象中的操作

js数组对象中的操作

作者: 糖醋里脊120625 | 来源:发表于2019-08-09 17:32 被阅读0次

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>vue自定义过滤器</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    </head>
    <body>
        <div class="test">
 
        </div>
        <script type="text/javascript">
            //对象操作
            let meals = {
                mealA: 'Breakfast',
                mealB: 'Lunch',
                mealC: 'Dinner'
            };
            for(let key of Object.keys(meals)) {
                let mealName = meals[key];
                // ... do something with mealName
                console.log(mealName);
            }
            
            
            //对象操作
            let simpleColors = {
                colorA: 'white',
                colorB: 'black'
            };
            let natureColors = {
                colorC: 'green',
                colorD: 'yellow'
            };
            Object.setPrototypeOf(natureColors, simpleColors);
            Object.keys(natureColors); // => ['colorC', 'colorD']
            natureColors['colorA'];    // => 'white'
            natureColors['colorB'];    // => 'black'
            
            
            //函数式
            // 简单的缓存工具
            // 匿名函数创造了一个闭包
            const cache = (function() {
                const store = {};
                return {
                    get(key) {
                        return store[key];
                    },
                    set(key, val) {
                      store[key] = val;
                    }
                }
            }());
            console.log(cache) //{get: ƒ, set: ƒ}
            cache.set('a', 1);
            cache.get('a');  // 1
            
            
        //不是高阶函数
        ////map()
        //map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。map 不会改变原数组
        var animals = [
            { name: "Fluffykins", species: "rabbit" },
            { name: "Caro", species: "dog" },
            { name: "Hamilton", species: "dog" },
            { name: "Harold", species: "fish" },
            { name: "Ursula", species: "cat" },
            { name: "Jimmy", species: "fish" }
        ];
        var names = [];
            for (let i = 0; i < animals.length; i++) {
            names.push(animals[i].name);
        }
        console.log(names); //["Fluffykins", "Caro", "Hamilton", "Harold", "Ursula", "Jimmy"]
        //高阶函数
        var animals = [
            { name: "Fluffykins", species: "rabbit" },
            { name: "Caro", species: "dog" },
            { name: "Hamilton", species: "dog" },
            { name: "Harold", species: "fish" },
            { name: "Ursula", species: "cat" },
            { name: "Jimmy", species: "fish" }
        ];
        var names = animals.map(x=>x.name);
        console.log(names); //["Fluffykins", "Caro", "Hamilton", "Harold", "Ursula", "Jimmy"]
        
        
        // 不使用高阶函数 
        //filter() 方法会创建一个新数组,其中包含所有通过回调函数测试的元素。
        //filter 为数组中的每个元素调用一次 callback 函数, callback 函数返回 true 表示该元素通过测试,保留该元素,false 则不保留。filter 不会改变原数组,它返回过滤后的新数组。
        var animals = [
            { name: "Fluffykins", species: "rabbit" },
            { name: "Caro", species: "dog" },
            { name: "Hamilton", species: "dog" },
            { name: "Harold", species: "fish" },
            { name: "Ursula", species: "cat" },
            { name: "Jimmy", species: "fish" }
        ];
        var dogs = [];
        for (var i = 0; i < animals.length; i++) {
            if (animals[i].species === "dog") dogs.push(animals[i]);
        }
        console.log(dogs); 
        //使用高阶函数filter
        var animals = [
            { name: "Fluffykins", species: "rabbit" },
            { name: "Caro", species: "dog" },
            { name: "Hamilton", species: "dog" },
            { name: "Harold", species: "fish" },
            { name: "Ursula", species: "cat" },
            { name: "Jimmy", species: "fish" }
        ];
        var dogs = animals.filter(x => x.species === "dog");
        console.log(dogs); // {name: "Caro", species: "dog"}
        
        
        // 不使用高阶函数
        //reduce
        //reduce 方法对调用数组的每个元素执行回调函数,最后生成一个单一的值并返回。 reduce 方法接受两个参数:1)reducer 函数(回调),2)一个可选的 initialValue。
        const arr = [5, 7, 1, 8, 4];
        let sum = 0;
        for (let i = 0; i < arr.length; i++) {
          sum = sum + arr[i];
        }
        console.log(sum);//25
        // 使用高阶函数
        const arr = [5, 7, 1, 8, 4];
        const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue,0);
        console.log(sum)//25
        </script>
    </body>
</html>

相关文章

  • JS jsonArray操作

    JS jsonArray操作 js对数组对象的操作以及方法的使用 如何声明创建一个数组对象:var arr = n...

  • js数组对象中的操作

  • JS对象 & JSON & JS数组操作

    JS对象 & JSON & JS数组操作 JSON 格式(JavaScript Object Notation 的...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • JS判断数组

    说明 JS中要区分数组和非数组对象有时候非常的困难,typeof操作符在对数组操作是返回的是 'Object'(除...

  • js对象数组操作 数组操作

    var numbers = [1, 2, 3];var newNumbers1 = numbers.map(fun...

  • 概念集合

    JS中的数组和Arrary的区别 js中的数组就是array对象

  • ES6--(5)解构:更方便的数据访问

    解构为何有用? 解构使得在 JS 中操作对象与数组变得更容易。使用熟悉的对象字面量与数组字面量语法,可以将数据结构...

  • js数组对象或数组常用操作

    找相同 去重 找选中和未选中 js 判断数组的对象中是否有某个值 js如何判断对象数组中是否存在某个对象

  • javaScript的数组

    js中没有数组类型 js 中数组是以内置对象的形式存在 数组定义01 var attr = new Array('...

网友评论

      本文标题:js数组对象中的操作

      本文链接:https://www.haomeiwen.com/subject/jsahjctx.html