我可以将连续的Sugar.js调用组合到Array.map吗?

时间:2012-10-06 23:59:56

标签: javascript sugar.js

例如,如果我的数组是多维的:

var myArray = [
    {
        key1: {
            key2: 1,
            ...
        },
        ...
    },
    {
        key1: {
            key2: 2,
            ...
        },
        ...
    }
];

myArray.map('key1').sum('key2');
= 3

这也可能是

myArray.map('key1').map('key2').sum();

但是有没有办法将它们组合成一个map的调用?

1 个答案:

答案 0 :(得分:0)

当map采用字符串时,它实际上是pluck的快捷方式。

作为described in the Sugar documentation,map更传统上也可以使用函数:

  

地图(地图,范围)

     

将数组映射到另一个数组,该数组包含在每个元素上调用map的结果值。范围是   这个对象。除了为浏览器提供此方法   不支持原生的,这种增强的方法也是直接的   接受一个字符串,这是获取该字符串的函数的快捷方式   每个元素的属性(或调用函数)。

     

返回:数组

<强>因此:

myArray.map(function(x) { return x.key1.key2; }).sum()