1
|
var
arr =[1,2,3,4,5,6]
//全文通用数组,个别除外
|
while
1
2
3
4
5
6
7
8
9
|
var
i=0;
while
(i<=arr.length-1){
//条件需要有限制,故<=,否则会死循环
console.log(arr[i],i)
i++;
//更新下标
}
|
do while
1
2
3
4
5
6
7
8
9
|
var
i=0;
do
{
console.log(arr[i],i)
i++;
}
while
(i<=arr.length-1);
//下标从0开始,length-1
|
for
1
2
3
4
5
|
for
(
var
i = 0;i<arr.length;i++){
console.log(i,arr[i])
}
|
for in
1
2
3
4
5
|
for
(key
in
arr){
console.log(key,arr[key])
}
|
ES6语法
//Array.fromIE不识别,IE的兼容写法。
//可以把类数组对象转换为真正的数组
1
2
3
4
5
|
if
(!Array.from){
Array.from =
function
(el) {
return
Array.apply(
this
, el);
}
}
|
Set
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
a=[1,1,1];
var
b=
new
Set(a);
//去重
console.log(b)
b.add(
'li'
)
//添加
b.
delete
(
'li'
)
//删除
b.has(
'li'
)
//返回true false;
b.clear()
//清空
|
Map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
var
eMap =
new
Map([ [
'a'
, 1],[
'b'
, 2],[
'c'
, 3] ]);
eMap.get(
'a'
)
//1 //获取值
eMap.has(
'b'
)
//true //检测key是否存在,返回true false;
eMap.
delete
(
'c'
)
//删除
eMap.set(
'c'
,3)
//添加
eMap.clear()
//清空
//相当于返回一个新数组
arr.map(
function
(x){
if
(x==3){<br>
return
x*3<br> }
return
x<br>})
arr.map((x)=>{
if
(x==3){<br>
return
x*3<br> }
return
x
})
|
forEach
//两个参数 x数组内容,y数组下标
1
2
3
4
5
|
arr.forEach((x,y)=>{
console.log(x,y)
})
|
//不支持IE9以下,但不包括IE9,IE8兼容写法
if ( !Array.prototype.forEach ) { Array.prototype.forEach = function forEach( callback, thisArg ) { var T, k; if ( this == null ) { throw new TypeError( "this is null or not defined" ); } var O = Object(this); var len = O.length >>> 0; if ( typeof callback !== "function" ) { throw new TypeError( callback + " is not a function" ); } if ( arguments.length > 1 ) { T = thisArg; } k = 0; while( k < len ) { var kValue; if ( k in O ) { kValue = O[ k ]; callback.call( T, kValue, k, O ); } k++; } }; }
for of
//不支持普通对象遍历 如:{ } 会报错 is not iterable
//IE不支持
1
2
3
4
5
|
for
(
var
i of arr){
console.log(i,arr[i-1])
//for of的下标从1开始,故减1
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 字符串
var
str =
"hello"
;
for
(
let
s of str) {
console.log(s);
// h e l l o
}
// DOM NodeList对象
let
paras = document.querySelectorAll(
"p"
);
for
(
let
p of paras) {
p.classList.add(
"test"
);
}
// arguments对象
function
printArgs() {
for
(
let
x of arguments) {
console.log(x);
}
}
printArgs(
'a'
,
'b'
);
// 'a' 'b'
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//循环控制语句<br>//break:当前条件成立且执行后跳出。
//continue:跳过当前成立条件,继续执行循环。
//for循环,continue之后执行语句,是跳过条件的新下标。
//while、do-while循环,continue需放到i++之后使用,否则,continue将跳过i++进入死循环。
for
(
var
i = 1; i < 10; i++){
if
(i == 4){
continue
;
}
console.log(i);
//1 2 3 5 6 7 8 9
}
for
(
var
i = 1; i < 10; i++){
if
(i == 4){
break
;
}
console.log(i);
//1 2 3
}
|