我如何在JavaScript中执行操作就像在Java流中进行操作管道一样?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我如何在JavaScript中执行操作就像在Java流中进行操作管道一样?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1983字,纯文字阅读大概需要3分钟。
内容图文
![我如何在JavaScript中执行操作就像在Java流中进行操作管道一样?](/upload/InfoBanner/zyjiaocheng/705/a35cfa2096034c5abfb7690639ccdc19.jpg)
在Java 8中,当我一个接一个地链接方法时,使用流以流水线方式执行操作.
例:
List<Integer> nums = Arrays.asList(1,2,3,4,5,6);
nums.stream().map(x->{
x = x * x;
System.out.println("map1="+x);
return x;
}).map(x->{
x = x * 3;
System.out.println("map2="+x);
return x;
}).forEach(x-> System.out.println("forEach="+x));
输出: –
map1=1
map2=3
forEach=3
map1=4
map2=12
forEach=12
map1=9
map2=27
forEach=27
map1=16
map2=48
forEach=48
map1=25
map2=75
forEach=75
map1=36
map2=108
forEach=108
但是当我在javascript中尝试类似时.结果是不同的.在javascript中,第一个操作完成,然后执行第二个操作.例如: –
var nums = [1,2,3,4,5,6 ];
nums.map(x => {
x = (x * x);
console.log('map1='+x);
return x;})
.map(x => {
x = x * 3;
console.log('map2='+x);
return x;})
.forEach(x=> console.log('forEach='+x));
输出: –
map1=1
map1=4
map1=9
map1=16
map1=25
map1=36
map2=3
map2=12
map2=27
map2=48
map2=75
map2=108
forEach=3
forEach=12
forEach=27
forEach=48
forEach=75
forEach=108
在JavaScript中是否有任何方法使它以管道方式执行操作,并且我在Java程序中获得输出?
解决方法:
也许以后(或从不)你可以使用实际的实验pipeline operator |>,它具有以下语法:
expression |> function
通过将函数作为单独的函数并迭代每个管道的流数组,可以实现您想要的结果.
这仅适用于FF.从版本58开始:此功能位于–enable-pipeline-operator编译标志之后.
const
a = x => { x = x * x; console.log("map1=" + x); return x; },
b = x => { x = x * 3; console.log("map2=" + x); return x; },
c = x => console.log("forEach=" + x)
var nums = [1, 2, 3, 4, 5, 6];
nums.forEach(v => v |> a |> b |> c);
管道与函数(function composition enabling piping)相同,在所需函数上有一个闭包.
const
pipe = (...functions) => input => functions.reduce((acc, fn) => fn(acc), input),
a = x => { x = x * x; console.log("map1=" + x); return x; },
b = x => { x = x * 3; console.log("map2=" + x); return x; },
c = x => console.log("forEach=" + x)
var nums = [1, 2, 3, 4, 5, 6],
pipeline = pipe(a, b, c);
nums.forEach(pipeline);
内容总结
以上是互联网集市为您收集整理的我如何在JavaScript中执行操作就像在Java流中进行操作管道一样?全部内容,希望文章能够帮你解决我如何在JavaScript中执行操作就像在Java流中进行操作管道一样?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。