03-JS基础(数组)

javascript基础三

switch语句

适合比较少的种类判断,条理清晰

只有极少的情况需要判断,可以通过switch case语句.

Switch语句可以对变量进行集体判断:

// 1.获取用户输入
        // 列举
        var fruit  = prompt('请输入水果名称!');
        //在有限的类别判断时候,可以使用,代码逻辑更清晰
        switch (fruit) {
            case '苹果':
                alert('苹果很好吃!');
                break;
            case '梨':
                alert('梨很脆!');
                break;
            case '香蕉':
                alert('香蕉很甜!');
                break;
            default:
                alert('我也没吃过!');
                break;
        }//break;缺少后对失去控制,继续执行,后面的语句

While循环:

先判断后执行

While 循环一定要有跳出条件,条件一直为真时会进入死循环

特殊:有些情况会刻意制造死循环,推送获取信息

var num = 0 ;
        // 当xxx的时候
        // 特殊:有些情况会刻意制造死循环,
        while(num<10){
            console.log('num==>'+num);
            num ++;
        }

Do..while循环:

  • 先执行后判断,先斩后奏
  • do while循环在条件不满足的情况下会比while循环多执行一次代码

Break语句:

  • 在循环体内,只要代码遇到break,程序立马结束当前循环
  • 当前循环指的是break语句所在的循环体。

Continue语句:

  • Continue语句指的是跳出本次循环,该语句后面的代码不再执行。
  • 语句后面的循环外的代码也不再执行。

数组(定义,赋值,取值)

通过对象方式创建数组

  • var arr = new Array();

直接创建数组

  • var arr = []

命名习惯

  • 一个数组: var arr; var a; var b;
  • name数组: var names; 或者nameArr = new Array()

数组中通过下标的方式进行赋值。

  • 下标从0开始。arr[0] = 123;
  • 通过下标确定数组中某个值
  • 通过数组名.length获取数组长度(元素个数)
    • var ages = new Array();
    • ages.length 返回数组长度

数组遍历

  • 以下两种方法效果等同,一般用第一种
var arr = [3,1,65,283,1,3,32,1];
//注意: 1. i从0开始
// 2. i < arr.length
for(var i = 0 ; i < arr.length ; i++){
    console.log('数组下标为'+i+'的值为==>'+arr[i]);
}

////////////////////////////////////////////////////////////////////////////

var arr = [3,1,23,23,15,213,5];
// for ... in...
for(var a in arr){//变量a会返回数组长度
    // console.log('a==>'+a);
    console.log('下标为'+a+'的值为'+arr[a]);
}

length() 数组长度&&数据的类型

  • 可存放字符串,但是一般不这样做
//创建一个空数组
var arr = [3,5,7];
//注意: 数组一般用于存放同一类的数据集合
var arr2 = [3,'张三',true,'5'];
arr[0] = 1;
arr[1] = 2;
console.log(arr);
console.log(arr2);
//数组的属性:
// xxx.abc() ==> 通过对象调用方法  小狗跑 小狗跳
// xxx.abc  ==> 通过对象查看属性     小狗的体重  小狗的颜色
console.log('数组长度==>'+arr.length);

数组合并

concat()

var arr1 = [1,3,5];
var arr2 = [7,9,11];
// concat 不会影响原来的数组 需要新的变量接收
var arr3 = arr2.concat(arr1);
console.log(arr3);//返回arr3=[7,9,11,1,3,5]

把数组转换为字符串

join()

通过指定的分隔符进行连接成为一个字符串

  var arr = [1,3,5,6,7];
//join可以把数组转换为字符串.
//如果没有参数 默认逗号隔开
var str = arr.join('!');
console.log(str);//控制台输出1!3!5!6!7

把字符串转换为数组

split()

  • var str2 = 'Hi  i am  fine  today';
          var str3 = 'a|b|c|d|e'; 
          //split 打断 可以把字符串转换为数组
          //注意: 空格 也算字符 var str = ''; var str2 ='  ';
          // split 处理的结果是 数组类型
          var arr2 = str2.split('i');//括号内的字符作为打断点
          var arr3 = str3.split('|');// 以"|"作为打断点
          console.log(arr2);//控制台输出["H", "  ", " am  f", "ne  today"]
          console.log(arr3);//控制台输出["a", "b", "c", "d", "e"]
    

数组内的增删查改

push()

从后面插入一个值 ,并返回新的长度

unshift()

从前面插入,并返回新的长度

pop()

删除最后一个元素 并且返回被删除的值

shift()

删除第一个元素 并且返回第一个删除的值

var arr = [1,2];
arr.push(3);//会影响原来的数组
var rs = arr.unshift(0);
console.log(arr);//控制台输出,[0, 1, 2, 3]
console.log('从前面插入一个值,返回新的长度为:'+rs);//输出从前面插入一个值,返回新的长度为:4
var arr2 = ['a','b','c','d','e']; 
var rs1 = arr2.pop();
var rs2 = arr2.shift();
console.log(arr2);//输出 ["b", "c", "d"]
console.log('pop删除了==>'+rs1);//输出pop删除了==>e
console.log('shift删除了==>'+rs2);//输出shift删除了==>a

算法

九九乘法表:

/*控制台输出:九九乘法表
            1*1=1;
            2*1=2 2*2=4;
            ...
            9*1=9 9*2=18 ... 9*9=81
*/
//方法一:
        // 问: 打印几行?
        for(var i = 1 ; i <= 9 ; i ++ ){
            var str = '';
            // 问: 每一行打印几个?
            for(var j = 1 ; j <= 9 ; j ++ ){
                if(j>i){
                    break;
                }
                str += i+'*'+j+'='+i*j+' ';
                //等同str = str + i+'*'+j+'='+i*j+' ';
            }
            console.log(str);
        }
//方法二:
        // 问: 打印几行?
        for(var i = 1 ; i <= 9 ; i ++ ){
            var str = '';
            // 问: 每一行打印几个?
            for(var j = 1 ; j <= i ; j ++ ){
                str += i+'*'+j+'='+i*j+' ';
                //等同str = str + i+'*'+j+'='+i*j+' ';
            }
            console.log(str);
        }

冒泡排序

//方法一:
var arr = [23,54,11,61,5,13,9];
var j = arr.length;
while (j > 0){
    for (var i = 0; i < j - 1; i++) {
        if (arr[i] > arr[i + 1]){
            var temp = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = temp;
        }

    }
    j--;
}
console.log('最终结果为:'+arr);
//方法二
var arr = [10,8,1,7,5,2];
for(var j = 0 ; j < arr.length - 1 ; j ++){
    // 第一轮
    for(var i = 0 ; i < arr.length - 1 - j; i ++){//每进行一轮,可以少比一次
        // 如果顺序错误,交换位置
        if(arr[i]>arr[ i+ 1]){
            var temp = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = temp;
        }
    }
    console.log('第'+(j + 1)+'轮的结果为:');
    console.log(arr);
}
console.log('最终结果为:');
console.log(arr);

选择排序

var arr = [230,4,64,6,24,75,9,12,34];   
var len = arr.length;
var min;
for (var i = 0; i < len - 1; i++){
    min = i;
    for (var j = i + 1; j < len; j++){
        if (arr[min] > arr[j]){//寻找最小值
            min = j;//保存最小值的索引
        }
    }
    //如果最小值不是最开始的值进行替换
    if (min != i){
        var temp = arr[i];
        arr[i] = arr[min];
        arr[min] = temp;
    }
}
alert(arr);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 第一部分:快速入门JS学习中的一些注意点:2018.8.16基础知识: 入门JavaScript是世界上最流行的脚...
    天山雪莲_38324阅读 528评论 0 1
  • JS基本数据类型及变量声明在js中有三种声明变量的方式:var let const,let var const的区...
    web佳阅读 896评论 1 8
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,196评论 0 4
  • 第五章******************************************************...
    fastwe阅读 663评论 0 0
  • 夜深,窗外,雨滴拍打屋檐的声音,清脆而有节奏,此刻的我却丝毫没有睡意。 两个小时,我一直坐在沙发上埋头敲打着键盘,...
    玲珑教主01阅读 349评论 0 1