趣味编程:静夜思(Javascript版)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/2.3.5/rx.all.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ixjs/1.0.6/l2o.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ixjs/1.0.6/ix.js"></script>
<style>
table, th, td {
	border: 1px solid black;
	border-collapse: collapse;
}
table {
	width: 100%;
}
th {
	background-color: green;
	color: white;
}
td {
	padding-top: 10px;
	padding-bottom: 10px;
	text-align: center;
}
</style>
<script>
$(function(){
	var $input = $("#input");
	$input.css("color", "blue");
	var $output1 = $("#output1");
	$output1.css("color", "green");
	var $output2 = $("#output2");
	$output2.css("color", "red");
	var $output3 = $("#output3");
	$output3.css("color", "brown");
	$("button").click(function(){
		var input = $input.text();
		var output1 = Enumerable.From(input)
			.Select("c, i => {ch:c, id:i}")
			.GroupBy("$.id % 5", "$.ch")
			.Select("$.Reverse().ToString('|')")
			.ToString("<br>");
		$output1.html(output1);
		Rx.Observable.from(input)
			.map(function (c, i, obs) { return {ch:c, id:i}; })
			.groupBy(function (x) { return x.id % 5; }, function (x) { return x.ch; })
			.flatMap(function (g) { return g.reduce(function (s, ch) { return ch + '|' + s; }); })
			.reduce(function (acc, s) { return acc + '<br>' + s; })
			.subscribe(function (output2) { $output2.html(output2); });
		var output3 = Ix.Enumerable.fromArray(input.split(''))
			.select(function (c, i) { return {ch:c, id:i}; })
			.groupBy(function (x) { return x.id % 5; }, function (x) { return x.ch; })
			.select(function (g) { return g.toArray().reverse().join('|'); })
			.toArray().join('<br>');
		$output3.html(output3);
	});
});
</script>
</head>
<body>
<h2>静夜思</h2>
<p id="input">床前明月光疑是地上霜举头望明月低头思故乡</p>
<button>Click me</button>
<br>
<br>
<table>
<tr><th>linq.js</th><th>RxJS</th><th>IxJS</th><tr>
<tr><td id=output1></td><td id=output2></td><td id=output3></td></tr>
</table>
</html>
实际效果: https://rawgit.com/zwvista/Hello-World/master/js/jys.htm
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值