美文网首页
JavaScript的数组

JavaScript的数组

作者: 海边拾贝 | 来源:发表于2015-12-11 16:09 被阅读0次

    在 JavaScript 1.6 里,javascript 数组增加了几个非常有用的方法:indexOf、lastIndexOf、every、 filter、 forEach、 map、 some,其中前两个可以归为元素定位方法,而后面的几个则可以归为迭代(iterative)方法。
    map和foreach类似,都是遍历输出结果,只是方式不太一样,map直接对整个列表数据进行函数操作;而foreach是迭代对每行数据进行逐一操作,foreach灵活性更好吧,map效率更好点儿。可以混着用
    reduce是一个二元操作,就是对给定列表中的数据两个两个的进行每次的操作,调用的函数类似这样hex(x,y)

    var desColors = [],
        srcColors = [
            {r: 255, g: 255, b: 255 }, // White
            {r: 128, g: 128, b: 128 }, // Gray
            {r: 0,   g: 0,   b: 0   }  // Black
        ];
    for (var i = 0, ilen = srcColors.length; i < ilen; i++) {
        var color = srcColors[i],
            format = function(color) {
                return Math.round(color / 2);
            };
        desColors.push( {
            r: format(color.r),
            g: format(color.g),
            b: format(color.b)
        });
    }
    // Outputs:
    // [
    //    {r: 128, g: 128, b: 128 },
    //    {r: 64,  g: 64,  b: 64  },
    //    {r: 0,   g: 0,   b: 0   }
    // ];
    console.log(desColors);
    

    有了map的JavaScript

    var srcColors = [
            {r: 255, g: 255, b: 255 }, // White
            {r: 128, g: 128, b: 128 }, // Gray
            {r: 0,   g: 0,   b: 0   }  // Black
        ],
        desColors = srcColors.map(function(val) {
            var format = function(color) {
                return Math.round(color/2);
            };
            return {
                r: format(val.r),
                g: format(val.g),
                b: format(val.b)
            }
        });
    // Outputs:
    // [
    //    {r: 128, g: 128, b: 128 },
    //    {r: 64,  g: 64,  b: 64  },
    //    {r: 0,   g: 0,   b: 0   }
    // ];
    console.log(desColors);
    

    Math.round()可以接收对象作为参数,对对象内所有属性同时进行操作.

    相关文章

      网友评论

          本文标题:JavaScript的数组

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