也就是最近开始接触函数式编程。在大神博客的熏陶之下,通过Clojure体验了一把函数抽取的乐趣。本以为对函数式编程已有进一步的理解,于是想要模仿大神文章的案例,构建一个九九乘法表;
想了半天,总算是有了一些产出。下面是代码示例。
function repeat (nums, num) {
var arr = new Array(nums);
for (var i = 0; i < arr.length; i++) {
arr[i] = num;
}
return arr;
}
function range (startn, endn) {
var arr = new Array(endn - startn);
for (var i=startn, index=0; i<endn; i++,index++) {
arr[index] = i;
}
return arr;
}
// 假设arr1.length <= arr2.length
function operate_multi (arr1, arr2) {
var ra = new Array(arr1.length);
for (var index in arr1) {
ra[index] = arr1[index] * arr2[index];
}
return ra;
}
for (var i=1; i<10; i++) {
var left = range(1, i+1);
var right = repeat(10, i);
console.log(operate_multi(left, right));
}
拿这段代码到浏览器控制台中执行,结果如图:
image.png
看完之后,不免想要吐槽,貌似很普通啊。。
是啊,我自己也没想出如何将这段代码与“更简洁”扯上关系呀。什么“映射”“过滤”“规约”,都想要用上,结果却是一个也没使用到..
网友评论