JS循环条件与数组

###2018-7-20 循环条件
(1 ) whlie

判断条件是否满足,满足执行while后面的代码,直到不满足。

while (判断条件) {
    条件为真时执行的代码
}

let count = 0;

while (count < 10) {
    console.log('hello');
    count++ ;
}

console.log('world');


( 2 )do ....while

至少执行do后面的代码,再判断while 后面的条件, 条件满足时,输出do后面的代码, 直达不满足while后面的条件。
特点  :至少执行一次


do {
条件为真时执行的代码

} while (判断条件);

let num = 0;

do {
  
    console.log(num);
     num++; 
} while(num < 5);

( 3 )for


for (初始化表达式(1); 条件判断表达式(2); 改变条件表达式(3)) {

    // 条件判断表达式 为真时执行的代码(4)

}

执行顺序: 1  2  4  3  2  4  3  2  4  3  ...

for (let i = 0; i < 5; i++) {

    for (let j = 0; j < 3; j++) {
        console.log(i, j);
    }

}


输出结果:0 0
0 1
0 2

1 0 
1 1
1 2

2 0 
2 1
2 2

3 0 
3 1
3 2

4 0 
4 1
4 2

( 4 )打断(终止)循环
break:终止循环不再继续
continue;终止当前这一小循环, 继续下一轮循环

for(let i = 0; i < 10; i++){
if(i == 5){
    break;
}
console.log(i);
}
当i = 5 时,直接停止,不再继续

   

for(let i = 0; i < 10; i++)
    if(i == 5){
        continue;
    }
    console.log(i);
}
直接跳过i = 5 ,继续i = 6 的循环


###2018-7-20

####  一  数组(object )   Array
( 1 )数组定义:数组是数据的有序集合  ,可以保存任意数据类型的数据
索引(下标):每一条数据在数组中的为位置, 从0 开始。

1 )声明数组:
* 字面量

let  ary = [ ];

* 构造函数

let ary = new Array ( );

2 )  定义数组并初始化

* 字面量

let  ary = [ `zhangsan` , `1234` , 1000 ];

* 构造函数

let ary = new Array (  `zhangsan` , `1234` , 1000 );

3  ) 数组的索引(下标 ){  增、  删 、 改、  查 }
* 查看:查看具体某条数据

let  ary = [ `zhangsan` , `1234` , 1000 ];
console.log( ary[ 2 ]) ;

* 增加: 在数组的任意位进行增加数据,数组的长度会改变,空的位置使用undefined进行填充

let arr = [ ] ;
arr [ 0 ] =1 ;
arr [ 4 ] = 4 ;
console.log (arr);
结果:[ 1,< 3 empty items >, 10]

* 修改

let  ary = [ `zhangsan` , `1234` , 1000 ];
ary [ 0  ] = "0000";
console.log(arry);
结果:[ `0000` , `1234` , 1000 ]

* 删除:通过delete来进行删除    ,delete 是关键字,不能用于命名

let arr = [ 1 , 2 , 3 ,  4 , 5];
delete arr [ 2 ] ; //删除数组中第3个元素
结果: [ 1 , 2 , < 1 empty items > ,  4 , 5];
只是吧数据删了,位置还在。


* 多维数组(数组套数组)

let array = [  [ 1, 2] , [ `a`, `b`] ] ;
console.log( array[  1 ,[ 0 ] ] ) ;
结果: a

* 扩展运算符(spread )···一般用在数组的合并上

let  ary1 = [ `zhangsan` , `1234` , 1000 ];
let ary2 = [`a`, `b`,`c`,`d` ] ;
let ary3 = [...ary1 , ...ary2];
* 结构(结构赋值)ES6
结构原理:两边结构保持一致,然后按照对应的位置将数据赋值给变量
 
let  a = 1 ;
let  b = 2 ;
let  c =2 ;
   
let [a, b, c] = [ 1,2,3];


取数组当中的某一个值
let user1 = [ `zhangsan` , `1234` , 1000 ];
let [users , password , money];
consolog(money);


交换位置

let a = 1 ;
let b = 2;
[ a, b] =[ b, a];
consolog ( a, b) ;




### 二  数组的属性和方法
( 1 )属性:length;

let ary = [0,1,2,3,4,,5];
console.log(ary.length);


清空数组:
let ary = [0,1,2,3,4,,5];
console.log(ary.length);

ary.length =0;
console.log(ary);

(  2  )方法
   1)增加:push();
 
在数组末尾增加一个
let ary = [0,1,2,3,4,,5];
ary .push("a");
console.log(ary);

在数组末尾增加多个数据   
let len = ary.push("a","b","c");
console.log(len);

 
  
2)删除:pop();


在数组末尾删除一个数据
let ary = [0,1,2,3,4,,5];
console.log(ary.pop());  查看删除的数据


3)数组开头增加:unshift();

ary.unshift("hello","world");

4 ) 数组开头删除一个数据

ary .shift( );



5  )查找方法
  
   ( 1 ) includes ( ) ; 判断数据是否包含在数组中, 有 :true ,无 :false ;
  
let result = ary .inclues ( " a"`);
console. log( result) ;


( 2 ) index Of ( ); 同上,有会输出所在位置( 索引 ),如果值小于 0 表示没有,如果有两个会输出前面的索引

let i = ary.indexOf('b');
console.log( i );
( 3 ) lastIndexOf( ) ; 查找最后出现的元素

let i = ary.lastIndexOf('a');
console.log(i);


( 4 )slice(  ); 在原始数组中选取一部分创建一个新的数组,且原始数组不变

let ary = [ "a", "1 ", "2" ,"a" ," 3" ,"a " ,"4 "," 5"];
let newAry = ary.slice ( 2 ,3)  2表示开始截取的下标  3 结束的下标,但是不包含



let newAry = ary.slice(2); 有开始下标,无结束下标是表示从从开始下标一直截取完
console.log(newAry);



( 5 )join ( );把数组里的每一个元素通过一个指定的符号拼接成一个大的字符串

let ary = ['h', 'e', 1, 'l', 'o', true];
let str = ary.join('');
console.log(str);



( 6 )ary.reverse( );将数组里的数据反序输出


(7)ary 。sort( )字符串的比较

let ary = [4, 3, 5, 11, 9];
// a - b 从小到大 ;
// b - a 从大到小 ;
ary.sort(function (a, b) {
    return b - a;
});
console.log(ary);

 
posted @ 2018-07-22 23:14  Fen达  阅读(1245)  评论(0编辑  收藏  举报