0

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

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

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

这也可能是

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

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

4

1 回答 1

0

当 map 接受一个字符串时,它实际上是pluck的快捷方式。

Sugar 文档中所述, map 也可以更传统地采用函数:

地图(地图,范围)

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

返回:数组

所以:

myArray.map(function(x) { return x.key1.key2; }).sum()
于 2012-10-07T04:58:41.727 回答