数组

数组:可以存放多个数据

作用:把一组数据放到一起,并且提供了方便的访问方式

本质:一组有序数据的集合

创建数组的两种方式

1、new Array();

  var arr1= new Array();
//  new Array ()数组  把它复制给了一个变量arr1  arr 1 就是数组的名字

2、使用数组字面量创建数组 [ ]

  var arr2=[ ]; // 这是声明创建了一个空数组
  var arr=[1,2,3,4]
  // 数组  可以使用一个变量名,就可以存储多个值
   //  数组里面的值可以是任意的数据类型
  var arr3=[ 1,'abc',true];

使用数组 数组名[下标]

数组元素就是数组中的数据

下标(索引):数组中元素的编号(从0开始)

 var arr=['佩奇','社会','人'];
console.log(arr);
console.log(arr[0]);

``

#####修改某个元素的值

```html
arr[0]='小猪';
console.log(arr[0]);

数组的长度: 就是数组元素的个数 arr.length

var arr=[0,1,5,'abc'];
console.log(arr.length);    // 结果是4

依次输出数组中的每一个元素

for ( i=0; i<4;i++) {
    console.log(arr[i]);
}

遍历数组:就是把数组元素从头到尾访问一次

var arr=[0,1,5,'abc'];
console.log(arr.length);    // 结果是4

for ( i=0; i<arr.length;i++) {
    console.log(arr[i]);
}

注意点:

i在循环里i代表计数器 在数组里 for 里面的i 代表索引号

arr[i] 是数组arr里面第i个元素

求数组的最大值:

首先需要一个存放最大值的变量

把数组第一个值取出来 放到最大值变量里去

开始用第二个元素和最大值变量作比较

如果第二个元素比最大值变量大,将第二个元素赋值给最大变量,后面依次比较。

var arr=[23,5,12,48,92,11,55,44,46,85];
        var max=arr[0];
        for (i=1;i<arr.length;i++){
            if (arr[i]>max){
                max=arr[i];
            }
        }
        console.log(max);

将数组中的元素转换为字符串 用 | 或其他符号分割

var arr=['red','blue','green'];
        var str='';
        for (i=0;i<arr.length;i++){
            str=str+arr[i]+' | ';
        }
        console.log(str);

新增数组元素即给数组追加元素:

1、借助索引号

var arr=['小猪','佩奇'];
arr[2]='社会人';     // 如果这个下标没有就是追加的元素
console.log(arr);

注意:

一定 要用 数组加下标的方式 追加数组元素, 不能直接给数组名赋值, 否则会覆盖掉以前的数据

2、用length增加数组容量

var arr=['小猪','佩奇'];
arr.length='4;     
console.log(arr);   //  (4)?["小猪", "佩奇", empty × 2]
console.log(arr[2]);  //  未赋值所以为undefined
console.log(arr[3]);

案例:遍历原来的数组 找出 大于等于10的元素

var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
// 声明新的空数组
var newArr = [];
// 定义一个变量 用来计算 新数组的索引号
var j = 0;
for (var i = 0; i < arr.length; i++) {
    // 找出 大于 10 的数
    if (arr[i] >= 10) {
        // 给新数组
        newArr[j] = arr[i];
        // 索引号 不断自加
        j++;
    }
}
console.log(newArr);

根据数组的长度是动态变化(推荐使用这种)

var arr=[1,5,6,8,12,52,41,2,3,6,85];
        var newArr=[];  //声明新的数组
        console.log(newArr.length);  
        for(var i=0;i<arr.length;i++){
            if (arr[i]>=10){
                newArr[newArr.length]=arr[i];  
            }
        }
        console.log(newArr);

翻转数组

翻转数组不涉及筛选,所以旧数组和新数组的索引号都是连续的

旧数组是输出方,新数组接收方

新数组中的索引号恰巧是 循环中的 i

旧数组去元素的索引号 是数组长度-i-1得到的

      var arr=['red','blue','pink','black'];
        var newArr=[];
        for (var i=0;i<arr.length;i++){
            newArr[i]=arr[arr.length-i-1];
        }
        console.log(newArr);

也可以倒着遍历

       var arr=['red','blue','pink','black'];
        var newArr=[];
        for( i=arr.length-1;i>=0;i--){
            newArr[newArr.length]=arr[i]
        }
        console.log(newArr);

冒泡排序

是一种算法,将数据排列按照一定的顺序将数据排列

 var arr = [5, 4, 3, 2, 1];

        // 5个元素,跑了4趟

        // 第1趟,先找最大值,并移动到最后,比较了 4次
        for (var i = 0; i < 4; i++) {
            // 开始比较
            if (arr[i] > arr[i + 1]) {
                // 交换值
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
        console.log(arr);
        // [4, 3, 2, 1, 5]

        // 第2趟,比较了3次
        for (var i = 0; i < 3; i++) {
            // 判断,交换
            if (arr[i] > arr[i + 1]) {
                // 交换值
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }

        }
        console.log(arr);
        // [3, 2, 1, 4, 5]
        // 第3趟,比较了 2次
        for (var i = 0; i < 2; i++) {
            // 判断,交换
            if (arr[i] > arr[i + 1]) {
                // 交换值
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
        console.log(arr);
        // [2, 1, 3, 4, 5]
        // 第4趟,比较了1次
        for (var i = 0; i < 1; i++) {
            // 判断,交换
            if (arr[i] > arr[i + 1]) {
                // 交换值
                var temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
        console.log(arr);

外层for循环 是一共需要的趟数(以前的行) 一共走多少趟? 数组的长度-1

里层循环控制每一趟的次数 每一趟的交换次数不同 数组的长度-i-1

从小到大排序:

        var arr=[5,4,3,2,1];
        for (var i=0;i<arr.length-1;i++){
            for(var j=0;j<arr.length-i-1;j++){
                if (arr[j]>arr[j+1]){
                    var temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        console.log(arr);

从大到小排序:

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

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,536评论 0 9
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 3,780评论 2 13
  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 5,424评论 0 0
  • 我写这个东西对别人有没有用呢?写对别人有用的东西,就是写作的终极技巧,没有什么比这个更重要的,仅仅这么一个问题,就...
    shangyuguo阅读 140评论 0 0
  • 尽管听起来是一个贬义词,但是攀比现象在人类社会中却十分普遍。年幼的学生会暗自攀比彼此的考试成绩,成绩优秀的人往往...
    宫本花藏阅读 744评论 0 0