一、数组和对象
Javascript基础的数据结构就两个,数组和对象。一般来说,大部分情况用这两个数据结构都可以解决问题。而其他的比如链表,堆栈,字典等,都可以用这两个进行模拟。
数组
创建一个数组
1 2 3
| var arr = ['wanhai','jiali','chenglong'];
|
对象
1 2 3 4 5 6 7 8 9
| var obj = {}
obj = { name:'wanhai', age:'30', method:function(){alert('eat')} }
|
Map 和 Set
Map和Set是ES6后新增加的数据结构,Map有点类似我们在PHP里使用的关联数组。但在JavaScript里,它具有数组和对象无法比拟的查找速度。
Set和Map类似,但是由于他存储的只是 value,而且,不保留相同的值,因此可以很方便的实现数组去重。
Map
1 2 3 4 5 6
| var map = new Map([ ['wanhai',98], ['jiali',88] ])
|
Set
1 2 3
| var map = new Set([1,2,3]);
|
遍历
遍历也叫迭代,一般是为了在一个数组结构,比如数组或者对象里,有规律的取出数据。
1、for循环
1 2 3 4 5 6 7
| var arr,i,len arr = ['wanhai','jiali']; len = arr.length; for (i = 0; i < len; i++ ) { console.log(arr[i]); }
|
2、for in循环
for in 循环是对 for循环的进一步简化
1 2 3 4 5 6 7
| var arr,x arr = ['wanhai','jiali']; for (x in arr ) { console.log(arr[x]); }
|
3、for of循环
for of循环和for in循环的用法和作用大抵一致,但for in循环因为历史问题,它的遍历遍历的是数据结构的属性名称。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| var arr,i arr = ['wanhai','jiali'];
for (i in arr) { console.log(i) }
arr.name = 'chenglong';
for (i in arr) { console.log(i) }
|
所以,我们要引入for…of循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| var arr,i arr = ['wanhai','jiali'];
for (i of arr) { console.log(i) }
arr.name = 'chenglong';
for (i of arr) { console.log(i) }
|
foreach 循环
foreach循环有在for的基础上进一步简化了遍历的步骤.foreach使用回调函数,获得值,回调函数有三个默认参数,分别是index,element,array,这三个参数的结果,就是迭代的结果。
1 2 3 4 5 6 7
| var arr = ['wanhai','jiali']
arr.foreach(function(index,element,arr){ console.log(index,element,arr), })
|