JavaScript数组基础及实例

简介:

js数组

和var i=1;这样的简单存储一样是js中的一种数据结构,是专门用来存储多个数据的一种数据结构。

摘:数组是一组数据的集合,其表现形式就是内存中的一段连续的内存地址,数组名称其实就是连续内存地址的首地址。

数组也是分为强类型和弱类型的:

强类型语言数组:1.内容是连续的 2.指定数组的时候要给一个长度 3.要规定存储数据类型

弱类型语言数组:可以不连续,不用指定长度,可以存储任何类型长度

js数组是弱类型数组。

js数组的定义方式:

复制代码

    //数组的定义方式
    //第一种
    var arr = new Array();
    arr[0]=1;
    arr[1]=2;
    arr[2]=3;    //第二种
    var arr = new Array(1,2,3,4,5);    //第三种
    var arr = new Array();
    arr.push(1);
    arr.push(2);    //第四种
    var arr = [1,2,3,4,5];

复制代码

arr[]是数组的索引,数组的索引是从0开始的。

arr.push();是数组的一种方法,用来向数组添加数据

arr.length是数组的方法,代表数组的长度,表示数组下有几个元素

数组名.属性名

数组名.方法名()

 

JS数组中可以存储任意类型的数据

    var arr = new Array();
    arr[0]=1;
    arr[1]="hello";

二维数组:

    //二维组数
    var arr = new Array(        new Array(11,12,13,14,15),        new Array(21,22,23,24,25),        new Array(31,32,33,34,35)
    );

数组可以作为数组的值,数组中的值可以是数组,这样叫做二维数组

二维数组的索引是arr[][]

遍历数组

复制代码

    //遍历数组
    //1.for循环
    for(var i=0;i<arr.length;i++){
        alert(arr[i]);
    }    
    //2.foreach循环
    for(var a in arr){
        alert(arr[a]);
    }

复制代码

需要注意的是不能用 for(var i=1;i<=arr.length;i++),因为数组索引是从0开始的。

可以使用for...in语句实现对一个数组的所有元素的遍历,数组中有几个元素,for..in语句就循环执行多少次。

下面用两个例子试一下:

输入10个成绩,求总分,最高,最低

复制代码

    var arr=new Array(67,45,56,12,90,98,23,43,56,99,97);    
    var g=0;    var d=arr[0];//定义最小开始时等于第一个数
    var z=0;    for(var i=0;i<arr.length;i++){
        z=z+arr[i]; //总分要在外边不能在里边
        if(arr[i]>g){   
            g=arr[i];            
        }else{            if(arr[i]<=d){
                d=arr[i];
            }
        }
    }
    alert(z+","+g+","+d);

复制代码

这里的思路是:

首先定义出数组,最高分g,最低分d开始时等于数组第一个元素,总分z

然后循环中,首先总分加数组元素

然后判断这个数组元素是否大于最高分,如果是则将这个分数赋给g,如果不是则判断是否小于最低分d,如果是则将此值赋给d

这里遇到的问题:找出最高分一开始就实现了,问题出在总分和最低分,计算总分要写在for循环下而不能写在判断中,否则得出的是高分的和。

最低分的要点在于开始赋值,如果和总分高分一样初始值为0,则第二个判断中,低分会一直为0,所以要把数组的第一个值赋给d,这样才能判断计算

 

拓展:

数组里的索引叫做(key),数组里存的值叫做(value),他们是成对存在的,叫做键值对

摘:

JS中符号含义:

()表示函数执行

[]表示语法模拟,表示模拟Array类的实例(=new Array())

{}表示语法模拟,表示模拟Object类的实例(=new Object())

//表示语法模拟(正则对象),表示模拟RegExp类的实例(=new RegExp())


本文转自  zddnd  51CTO博客,原文链接:http://blog.51cto.com/13013666/1940112
相关文章
|
9天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
9天前
|
JavaScript Java
JS有趣的灵魂 清空数组
JS有趣的灵魂 清空数组
|
1月前
|
JavaScript 前端开发 API
常用JavaScript 数组 API大全
常用JavaScript 数组 API大全
32 0
|
2天前
|
JavaScript 前端开发 索引
JavaScript 数组中的增、删、改、查
JavaScript 数组中的增、删、改、查
|
8天前
|
JavaScript 前端开发
【掰开揉碎】JavaScript状态机的应用场景与实例(二)
【掰开揉碎】JavaScript状态机的应用场景与实例(二)
|
8天前
|
前端开发 JavaScript 测试技术
【掰开揉碎】JavaScript状态机的应用场景与实例(一)
【掰开揉碎】JavaScript状态机的应用场景与实例(一)
|
9天前
|
JavaScript
|
16天前
|
JavaScript 前端开发
JavaScript数组的功能内置类型
数组是JavaScript的内置类型,JavaScript数组的功能特别强大。下面简单介绍一下JavaScript数组。
|
17天前
|
存储 JavaScript 前端开发
在浏览器中存储数组和对象(js的问题)
在浏览器中存储数组和对象(js的问题)
|
27天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可为任意类型,有序且支持get、set、has、delete操作;Set存储唯一值,提供add、delete、has方法。两者皆可迭代。示例展示了Map和Set的基本用法,如添加、查询、删除元素。
13 2