2

我不熟悉 Python,我正在尝试将函数转换为 JavaScript,但我不太清楚这一行的作用:

maxnum = sum(map(lambda x: x[1], tsweights))

其中tsweights= [['5', 61], ['6', 61], ['7', 61], ... ]

我不知道这是如何工作的,如果有人可以提供帮助,那就太好了。

全功能: http: //pastebin.com/PZqRAz0Z

4

4 回答 4

4

让我们从一些提示开始。

lambda x: x[1]只是一个匿名函数,它做同样的事情:

function foo(x) {
    return x[1];
}

map()相当于Array.map。我想你可以弄清楚是什么sum()

相关的 Python 文档:

于 2013-04-15T13:57:13.357 回答
1

它类似于 JavaScript 中的 this...

var tsweights = [['5', 61], ['6', 61], ['7', 61], ... ];
var maxnum = 0;
for (var i in tsweights)
{
    maxnum += tsweights[i][1];
}
于 2013-04-15T13:59:07.077 回答
0

只是添加到马特球的答案:

 var tsweights = [['5', 61], ['6', 61], ['7', 61], ... ]    
 , maxnum = tsweights.map(function(x){ return x[1] })
                     .reduce(function( p, c ){ return p+c })

因为 JavaScript 没有 sum 函数。

或者使用 es 中的新箭头函数:

 var tsweights =  [['5', 61], ['6', 61], ['7', 61], ... ]
   , maxnum = tsweights.map( x => x[1] ).reduce ( (p,c) => p+c )
于 2013-04-15T14:02:54.213 回答
0

该函数可以这样重写:

sum = 0
for item in tsweights:
    sum += item[1]

如果tsweights= [['5', 61], ['6', 61], ['7', 61], ... ],则函数将返回61 + 61 + 61 + ...

于 2013-04-15T13:58:22.150 回答