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,这样才能判断计算
添加数据时去重,下代码仅能输入一个数据
var arr=Array(2,1,11,2,31);
var s=prompt("请输入学号");
for(var i=0;i<arr.length;i++){
if(s in arr){
break;
}else{
arr.push(s);
break;
}
}
alert(arr);
这里的思路是
首先定义出数组,和用户输入的内容s
然后用for循环遍历数据,在for循环中使用if判断,如果s 在数组中,跳出,如果s不在数组中,写入数据
拓展:
数组里的索引叫做(key),数组里存的值叫做(value),他们是成对存在的,叫做键值对
摘:
JS中符号含义:
()表示函数执行
[]表示语法模拟,表示模拟Array类的实例(=new Array())
{}表示语法模拟,表示模拟Object类的实例(=new Object())
//表示语法模拟(正则对象),表示模拟RegExp类的实例(=new RegExp())
JavaScript数组基础及实例的更多相关文章
- JavaScript数组基础编程题归纳
之前的随笔"JavaScript中数组类型的属性和方法"中有介绍很多数组类型的方法,但都是一些理论.最近在练习在线编程题,发现自己还是习惯于用常规的循环来答题,对于数组的方法的使用 ...
- JavaScript 数组基础知识
// Array 类型: // 检测数组: // console.log(myarr instanceof Array) //true // toString()方法会返回由数组中每个值的字符串形式拼 ...
- JavaScript数组(二)实例
一.Js 数组示例常用操作. $(function () { Javascript数组学习 var nums = new Array([10], [5],[ 8], [2], [3]); 数组反转 n ...
- JavaScript RegExp 基础详谈
前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...
- JavaScript学习基础部分
JavaScript学习基础 一.简介 1.JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet Explorer. Mozilla.Firefo ...
- javascript 闭包基础分享
javascript 闭包基础分享 闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识.如果对作用域,函数为独立的对象这 ...
- JavaScript 数组基本操作
简介 数组操作无论是在JavaScript中还是在其他语言中都是很常见.经常会用到的,现在我把JavaScript 数组基本操作整理一下,供大家参考学习.里边包含我自己的见解以及案例,希望能够帮助大家 ...
- JavaScript的基础学习
由js和python想到的: 弱类型语言 js 中的数据在进行算数运算时,会自动转换类型强类型语言 变量的值的数据类型一旦确定,使用时不能改变 动态语言:编译时不知道数据类型,只有在执行时才知道数据类 ...
- 三丶JavaScript 的基础学习(一)
知识预览 BOM对象 DOM对象(DHTML) 8 实例练习 JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言 ...
随机推荐
- stl_泛型的一些基本
一.泛型编程的一些基本 : 1.泛型程序设计: 1.1.程序尽可能的通用. 1.2.将算法从数据结构中抽象出来,成为通用. 1.3.模板并不是单纯的函数,不能凭空的生成,是用来产生代码的代码,可以减少 ...
- Web层框架对网站中所有异常的统一解决
一个网站的异常信息作为专业的人士,是不会轻易暴露给用户的,因为那样狠不安全,显得你漏是一回事,只要还是考虑到网站的数据安全问题,下面给大家分享一下一些常见的web层框架是如何处理统一的异常. 之前都是 ...
- 蓝桥杯-组素数-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- hdu3829最大独立集
The zoo have N cats and M dogs, today there are P children visiting the zoo, each child has a like-a ...
- python之基础中的基础(一)
python是一个效率极高的语言,现在市面上的机器学习大部分是由python和R语言完成,所以在不久之前小仙心中便种下了学习python的想法.下面是这一个月多月以来学习的总结,都是基础中基础了. 1 ...
- 最简单的html5语言
什么是 HTML5? HTML5 是下一代 HTML 标准. 最小的HTML5文档 下面是一个简单的HTML5文档: <</span>!DOCTYPE html><< ...
- 山东省第八届ACM省赛游记
Day 1: 凌晨,来了几分兴致,和队友在VJudge上开了一把zoj月赛,WA一发闷一口拿铁,一瓶拿铁 不一会就被喝完了!好气啊!遂开始愉快地打游戏,打着打着,woc,居然3点半了,小睡片 刻,咬上 ...
- ionic之$ionicHistory
$ionicHistory 定义:当用户通过导航栏切换视图页面的时候,ionicHistory起到跟踪视图的作用,类似的浏览器的行为方式,一个ionic应用程序能够保持以前的视图,当前视图,和前视图( ...
- [笔记]scanf的使用(主要是针对char)
学的是C++,用cin cout也用的很顺溜,写自己的类时重载"<<"与">>"运算符也很爽,但是发现在刷算法竞赛题时,cin cout ...
- 无锁模式的Vector
这两天学习无锁的并发模式,发现相比于传统的 同步加锁相比,有两点好处1.无锁 模式 相比于 传统的 同步加锁 提高了性能 2.无锁模式 是天然的死锁免疫 下来介绍无锁的Vector--- LockF ...