gpt4 book ai didi

functional-programming - 是否可以在Underscore.js中同时遍历两个列表?

转载 作者:行者123 更新时间:2023-12-04 03:16:32 26 4
gpt4 key购买 nike

我基本上想在Underscore.js中使用 _.each() _.map() 表达以下行为。

a = [1, 2, 3]
b = [3, 2, 1]

# Result list
c = [0, 0, 0]

for i in [0 .. a.length - 1]
c[i] = a[i] + b[i]

在Matlab(我的主要语言)中绝对可以这样实现:

c = arrayfun(@(x,y) x+y, a, b)

直观上来说,Underscore中的语法应为:

c = _.map(a, b, function(x, y){ return x + y;})

但是,该参数列表是 Not Acceptable 。第二个参数应该是一个可调用的函数。

在这种情况下,可选的“上下文”参数对我没有帮助。

最佳答案

为此使用zip(也来自underscore.js)。像这样的东西:

var a = [1, 2, 3];
var b = [4, 5, 6];
var zipped = _.zip(a, b);
// This gives you:
// zipped = [[1, 4], [2, 5], [3, 6]]

var c = _.map(zipped, function(pair) {
var first = pair[0];
var second = pair[1];
return first + second;
});

// This gives you:
// c = [5, 7, 9]

工作示例:
  • http://jsfiddle.net/beRAD/
  • 关于functional-programming - 是否可以在Underscore.js中同时遍历两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133918/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com