这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 javascript 使用递归算法求两个数字组合功能, 结合实例形式分析了 JS 基于递归算法的数组遍历、判断、转换等相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 javascript 使用递归算法求两个数字组合功能。分享给大家供大家参考,具体如下:
- // 12 ,3,4 两个数字组合 最后结果 应该是
- // 13
- // 14
- // 23
- // 24
- // 34
- // 这5种 用程序 怎么算出来
- // 是求组合的算法
- // var arr = [12, 3, 4];
- // var len = arr.length;
- // var result = [];
- // for (var i = 0; i < len; i++) {
- // for (var j = i + 1; j < len; j++) {
- // for (var k = 0; k < String(arr[i]).length; k++) {
- // for (var m = 0; m < String(arr[j]).length; m++) {
- // result.push(Number(String(arr[i]).charAt(k)+String(arr[j]).charAt(m)));
- // }
- // }
- // }
- // }
- // console.log(result);
- var arr = [12, 3, 4];
- var len = arr.length;
- var result = [];
- var indexs = {};
- function combination(ind, start) {
- start++;
- if (start > 1) {
- return;
- }
- if (!indexs[start]) {
- indexs[start] = 0;
- }
- for (indexs[start] = ind; indexs[start] < len; indexs[start]++) {
- combination(indexs[start] + 1, start);
- if (start == 1) {
- var one = String(arr[indexs[start - 1]]);
- var two = String(arr[indexs[start]]);
- for (var k = 0; k < one.length; k++) {
- for (var m = 0; m < two.length; m++) {
- result.push(Number(one.charAt(k) + two.charAt(m)));
- }
- }
- }
- }
- }
- combination(0, -1);
- console.log(result);
希望本文所述对大家 JavaScript 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0511/328947.html