antd递归渲染左侧菜单

1
2
3
4
5
6
7
8
9
10
11
12
renderMenu = (data) => {
return data.map((item) => {
if(item.children){
return (
<SubMenu title={item.title} key={item.key}>
{ this.renderMenu(item.children) }
</SubMenu>
)
}
return <Menu.Item title={item.title} key={item.key}>{item.title}<Menu.Item>
})
}

检测类型

JavaScript 是弱类型语言,对类型没有严格限制,但是在程序中经常需要对类型进行检测和转换,下面结合示例介绍类型检测和转换的技巧。

使用 typeof 检测类型

typeof 运算符专门用来测试值的类型,特别对于原始值有效,而对于对象类型的数据,如数组、对象等,返回的值都是字符串”object”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
alert( typeof 1);           //返回字符串"number" 
alert( typeof "a"); //返回字符串"string"
alert( typeof true); //返回字符串"boolean"
alert( typeof {}); //返回字符串"object"
alert( typeof [] ); //返回字符串"object"
alert( typeof function(){});//返回字符串"function"
alert( typeof undefined); //返回字符串"undefined"
alert( typeof null); //返回字符串"object"
alert( typeof NaN); //返回字符串"number"

//由于 null 值返回类型为 object,用户可以定义一个检测简单数据类型的一般方法。
function type(o) {
return (o === null ) ? "null" : (typeof o);
//如果是 null 值,则返回字符串"null",否则返回(typeof o)表达式的值
}

while/do while

while语句

while 语句是基本的重复操作语句。 在while语句中会先计算循环条件,如果循环条件返回值为 false,则会跳出循环结构,如果循环条件返回值为 true,则执行循环体内的语句,如果一直为true则导致死循环。

1
2
3
4
5
var n = 0;            //声明并初始化循环变量 
while (n < 10) { //循环条件
n ++; //递增循环变量
alert (n); //执行循环操作
}

数组迭代

数组法代是一件很重要的操作,在 ECMAScript 5 之前主要使用 for 语句实现,这种方式不是很方便, 为此 ECMAScript 5 新增了 5 个与迭代相关的方法。

1.forEach:为数组中的每个元素调用定义的回调函数。

2.every:检查定义的回调函数如果每一项都返回true,则返回 true。

3.some:检查定义的回调函数如果任意一项返回true。返回 true。

4.map:对数组的每个元素调用定义的回调函数,并返回包含结果的数组。

5.filter:对数组的每个元素调用定义的回调函数,并返回回调函数为其返回 true 的值的数组。 具体说明如下。

reduce/reduceRight

使用 reduce 和 reduceRight 方法可以汇总数组元素的值,具体用法如下:

reduce

1
2
3
4
5
6
function appendCurrent (previousValue, currentValue) {
return previousValue + "::" + currentValue;
}
var elements = ["abc", "def", 123, 456];
var result = elements.reduce(appendCurrent);
document.write(result); //abc::def::123::456
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×