文档章节

Javascript中递归与C++,Java,C#等有很大不同,自身经历,浪费两天。

 大东家
发布于 2015/01/13 10:28
字数 260
阅读 10
收藏 0

function getSubmenu(submenu)
{
   var menustr="";
   for(var i=0;i<submenu.length;i++)
	{
	         var menu=submenu[i];
	         var str="";	
	        if(!menu.submenu||menu.submenu.length==0)
	        {
	        	var toggleStr="";
	           	  if(menu.toggle==0)
	              {
	                  toggleStr="disabled";
	              }	              	
	              str='<li class="stick '+toggleStr+' "><a menuid='+menu.id+' action='+menu.action+' href="#"><i class='+menu.icon+'></i>'+menu.name+'</a></li>'  ;   
	        }
	        else
	     {
	        	var toggleStr="";
		         if(menu.toggle==0)
		           {
		                toggleStr="disabled";
		           }
	              str='<li class="stick '+toggleStr+' "><a menuid='+menu.id+' action='+menu.action+' class="dropdown-toggle" href="#"><i	class="'+menu.icon+'"></i>'+menu.name+'</a><ul class="dropdown-menu" data-role="dropdown">'+arguments.callee(menu.submenu)+'</ul></li>';
	        }
	        menustr=menustr+str;
	}
	return menustr;
}

在写自动生成菜单的时候,本以为按C++方式写递归就没什么事了,可是发现怎么搞,都只能读到数组中第一个值,经过资料搜索与整理,特写出来以警示以后。

其中最关键是调用的时候如果用该函数名的话,就会丢失现场(我遇到的是顶级现场,奇怪的是后续的现场又没有问题),而只能用

arguments.calleefunction getSubmenu(submenu)

进行调用。

参考了:

1.Javascript递归解决方案http://www.nowamagic.net/javascript/js_RecurrencePlot.php

2.https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee


本文转载自:http://blog.csdn.net/xiaohelong2005/article/details/40981409

粉丝 22
博文 255
码字总数 111936
作品 0
长沙
项目经理
私信 提问
各程序语言之-数据亲和力

我略精简了一下文章 :) 语言的数据亲和力 Javascript、Perl、Python、Ruby、Groovy等越来越多地被熟悉和使用 C++、C#、Java等主流语言也在不断地融入函数式和动态性特征 程序员的百宝箱中可供...

ddatsh
2011/06/28
342
0
几种主流编程语言的优点和缺点比较,不服来怼

在初级程序员阶段,每个人都不可避免遇到选择编程语言和职业方向的难题。我挑选了几个常见的编程语言,分析了优缺点和职业方向,以供想当程序员的人参考。 C/C++ 一句话概括:大多数中国程序...

达尔文
2017/07/22
3.5K
68
IEEE Spectrum 2014 年度编程语言排名

IEEE Spectrum通过跟踪Google搜索和趋势、社交网站如Stack Overflow、Twitter、Reddit和Hacker News上的相关讨论,GitHub上的项目,以及工作招聘等信息,分析了49种编程语言的流行度,公布了...

oschina
2014/07/02
7.1K
44
不同行业的软件都爱用什么编程语言开发?

近日,HackerRank发布了2018年开发技能报告,其中探讨了一些对理解开发人员环境至关重要的事情,本文将摘录编程语言排行部分。 互联网、物联网、AI,计算机技术不断迭代升级,传统行业纷纷开...

达尔文
2018/02/26
8.4K
19
华尔街上最炙手可热的三门编程语言

华尔街的投资银行实际上都是不折不扣的科技公司,例如高盛和J.P.摩根两家银行都拥有数以千计的技术专家,而且两家公司都把IT人员作为最重要的招聘对象。事实上整个华尔街都对高级软件开发人才...

oschina
2016/05/03
21.1K
70

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部