开发者社区> 技术小牛人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JavaScript:ES5和ES6区别实例
JavaScript:ES5和ES6区别实例
0 0
js实现websocket实例
js实现websocket实例
0 0
【前端】JS(javascript)中this的几种用法实例详解
this 是 JavaScript 语言的一个关键字,this 的指向其实是非常灵活的,它会根据调用function的对象不同,导致了 this 的指向不同。当在全局作用域下调用函数时,this 指向window。总的来说,this 就是函数运行时所在的环境对象。
0 0
鸿蒙开发实例 | ArkUI JS飞机大战游戏开发
本篇介绍使用ArkUI JS框架开发一款基于鸿蒙操作系统的飞机大战游戏。这款飞机大战游戏是在普通单机游戏的基础上添加了鸿蒙操作系统分布式支持,使游戏可以同时使用多台鸿蒙操作系统设备,为游戏玩家提供分布式场景的游戏体验。
0 0
js实例对象使用属性和方法的搜索顺序
js实例对象使用属性和方法的搜索顺序
0 0
JavaScript 解构赋值 5 个常见场景和实例
解构赋值语法是一种 JavaScript 表达式,通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。这种语法是 ECMAscript 6 规范引入了一种新语法,可以更轻松地从数组和对象中获取值。
0 0
JavaScript中6 个reduce()实例
reduce 方法在数组的每个元素上执行提供的回调函数迭代器。它传入前一个元素计算的返回值,结果是单个值,它是在数组的所有元素上运行迭代器的结果。
0 0
Js 的事件循环(Event Loop)机制以及实例讲解
前言 大家都知道js是单线程的脚本语言,在同一时间,只能做同一件事,为了协调事件、用户交互、脚本、UI渲染和网络处理等行为,防止主线程阻塞,Event Loop方案应运而生... 个人博客了解一下:obkoro1.com 为什么js是单线程? js作为主要运行在浏览器的脚本语言,js主要用途之一是操作DOM。 在js高程中举过一个栗子,如果js同时有两个线程,同时对同一个dom进行操作,这时浏览器应该听哪个线程的,如何判断优先级? 为了避免这种问题,js必须是一门单线程语言,并且在未来这个特点也不会改变。
0 0
web前端学习(四十五)——JavaScript BOM-Location对象、BOM-Cookie实例
web前端学习(四十五)——JavaScript BOM-Location对象、BOM-Cookie实例
0 0
web前端学习(四十三)——JavaScript BOM简介、BOM-Window对象实例
web前端学习(四十三)——JavaScript BOM简介、BOM-Window对象实例
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Javascript中的函数
立即下载
Javascript异步编程
立即下载
JS零基础入门教程(上册)
立即下载