Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为所有数组元素调用函数,但不将项作为参数传递_Javascript_Ruby - Fatal编程技术网

Javascript 为所有数组元素调用函数,但不将项作为参数传递

Javascript 为所有数组元素调用函数,但不将项作为参数传递,javascript,ruby,Javascript,Ruby,在javascript中,我可以做到这一点: var show = function(w) { alert(w); }; var words = ['a', 'b', 'c']; words.forEach(show); 注意,我不需要将数组项作为参数传递 在ruby中有没有同样的方法 比如: 附言: 我知道我可以这样做:words.each{w|show(w)}。问题是我是否可以像在javascript中一样,不将项作为参数传递。当然,可以像在ECMAScript中一样通过传递方法来

在javascript中,我可以做到这一点:

var show = function(w) {
  alert(w);
};

var words =  ['a', 'b', 'c'];
words.forEach(show);
注意,我不需要将数组项作为参数传递

在ruby中有没有同样的方法

比如:

附言:
我知道我可以这样做:
words.each{w|show(w)}
。问题是我是否可以像在javascript中一样,不将项作为参数传递。

当然,可以像在ECMAScript中一样通过传递方法来实现:

words.each(&method(:show))
请注意,这是使Ruby示例正常工作的方法。然而,Ruby方法并不是Ruby中最接近ECMAScript函数的类似物。
Proc
实际上是更接近的匹配:

show = -> w { puts w }

words.each(&show)
这实际上与ECMAScript 6版本非常接近:

const show = w => alert(w);

words.forEach(show);

当然,可以通过传递方法来完成,就像在ECMAScript中一样:

words.each(&method(:show))
请注意,这是使Ruby示例正常工作的方法。然而,Ruby方法并不是Ruby中最接近ECMAScript函数的类似物。
Proc
实际上是更接近的匹配:

show = -> w { puts w }

words.each(&show)
这实际上与ECMAScript 6版本非常接近:

const show = w => alert(w);

words.forEach(show);

谢谢很高兴知道:)或使
显示
一个lambda并说出
单词。每个(&show)
。这可能与JavaScript版本更接近。很好,Jörg。早起,嗯?@muistoshort:你说得对,我太专注于让OP的例子发挥作用了。补充说,谢谢。很高兴知道:)或使
显示
一个lambda并说出
单词。每个(&show)
。这可能与JavaScript版本更接近。很好,Jörg。早起,嗯?@muistoshort:你说得对,我太专注于让OP的例子发挥作用了。补充。