javaScript之数组(二)

  1. ***数组API:

*栈和队伍:其实都是数组,只不过使用了不同的方法

栈:一端封闭,只能从另一端进出的*数组*

何时使用栈:只能从数组一端进出

结尾出入栈:

入栈:arr.push(新值); ==>arr.[arr.length]=新值;

出栈:var last=arr.pop();

案例:

var bus=[];for(var i=0;i<5;i++){    bus.push("乘客"+i);    alert(bus);}while(bus.length>0){    var cust=bus.pop();    alert(cust+"下车\n"+bus);}

开头出入栈:

入栈:arr.unshift(新值);

出栈:var first=arr.shift();

var bus=[];for(var i=0;i<5;i++){    bus.unshift("乘客"+i);    alert(bus);}while(bus.length>0){    var cust=bus.shift();    alert(cust+"下车\n"+bus);}

现实中的排队效果:push  shift 组合

队列:只能从一端进入,必须从另一端出

何时使用:只要先到的先得

结尾入队列:arr.push(新值)

开头出队列:var first=arr.shift();

案例:排队买手机

var shen=5;var queue=[];    for(var i=0;i<6;i++){        queue.push("顾客"+i);        alert(queue);    }    while(shen>0){        var cust=queue.shift();        shen--;        alert(cust+"抢购成功\n"+queue+"\n剩余:"+shen);    }alert(queue+"抢购失败");

2.二维数组:数组的元素又引用了另一个子数组

何时使用:保存横行数列的二维数据;保存上下级关系的数据

如何创建:2步

1.创建一个空数组:var data=[];

2.设置数组中每个元素再引用另一个小数组:date[0]=[0,0,0,0]

访问二维数组中任意位置的元素:data[r][c]

随机生成一个数,插入2:

  var data=[    [0,0,0,0],    [0,0,0,0],    [0,0,0,0],    [0,0,0,0],];  var r=Math.floor(Math.random()*4);  var c=Math.floor(Math.random()*4);

  data[r][c]=2;  var html=data.join("<br>");  document.write(html);

二维数组行下标r不能越界,越界就报错

遍历二维数组:固定套路:外层循环遍历当前行中的列

需要手写的固定套路

for(var r=0;r<data.length;r++){    for(var c=0;c<data[r].length;c++){        当前元素:data[r][c]    }}

3.***字符串对象:多个字符串组成的只读*数组*

和数组相同的API:

访问字符串中任意一个字符:str[i]

字符串的长度:str.length

凡是不直接修改原数组的API,字符串都能用:

比如 var substr=str.slice(starti,endi+1);

var newstr=str.concat(otherstr);

不能用: reverse()  push()  str[i]="字符"

内置对象:11个

ES标准已经规定好,由浏览器厂商已经实现的对象

开发人员直接使用,不必关心具体实现。

String Number Boolen --包装类型

Array  Date RegExp  Math

Error

Function  Object

Global-->window

4.查找关键字:

vari=str.indexOf("kword"[,starti]);//找右下侧一个,默认从头开始

str.lastIndexOf("kword"[,starti]);//找左下侧一个,默认结尾开始

lastIndexOf只要关键字第一字符<=当前位置

例1:

/*顺位查找关键字的位置*/    var str="no zuo no die no can no bi bi";    var i=str.indexOf("no");    console.log("在位置"+i+"发现关键字");

例2:

/*倒序查找关键字的位置*/  var str="no zuo no die no can no bi bi";  var i=-1;  while((i=str.indexOf("no",i+1))>=0){      alert("在位置"+i+"发现关键字");  }

例3:

从后面开始查找关键字:

/*查找关键字的位置*/  var str="no zuo no die no can no bi bi";  var i=str.length;  while((i=str.lastIndexOf("no",i-1))>=0){      alert("在位置"+i+"发现关键字");      if(i==0){//防止0位置刚好出现关键字时,出现死循环          break;      }  }

截取字符串的方法  3种:

varsub=str.slice(starti,endi+1);//获取两数之间的字符串,

str.substring(starti,endi+1);//不支持负数,提取字符串中介于两个指定下标之间的字符

str.substr(starti,n);//用于返回一个从指定位置开始的指定长度的子字符串

时间: 2024-10-22 18:00:47

javaScript之数组(二)的相关文章

javascript中数组的22种方法 (转载)

前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和valueOf()方法 [toString()] toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 [注意]该方法的返回值与不使用任何参数

JavaScript定义数组

JavaScript定义数组有两种方式: 1.通过Arrary()构造函数定义数组. 2.通过直接赋值法定义数组. Arrary()构造函数定义数组 格式一: var name = new Array(num); name[0] = 元素1; …… name[num-1] = 元素num; 格式二: var name = new Array(); name[0] = 元素1; name[0] = 元素2; name[0] = 元素3; …… 格式三: var name = new Array(元

javascript笔记(二)

concat() 连接多个字符串,返回合并后的字符串. 1 var s1="a"; 2 var s2="b"; 3 var s3="c"; 4 5 console.log(s1.concat(s2,s3));//abc concat() 方法的结果等同于:result = s1 + s2 + ... + sN.如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串. 数组中的concat():将参数添加为数组的元素,返回新的数组. 1 va

零基础JavaScript编码(二)

任务目的 在上一任务基础上继续JavaScript的体验 学习JavaScript中的if判断语法,for循环语法 学习JavaScript中的数组对象 学习如何读取.处理数据,并动态创建.修改DOM中的内容 任务描述 参考以下示例代码,页面加载后,将提供的空气质量数据数组,按照某种逻辑(比如空气质量大于60)进行过滤筛选,最后将符合条件的数据按照一定的格式要求显示在网页上 <!DOCTYPE html> <html> <head> <meta charset=&

JavaScript的数组

一.Array 数组概述: 1.Array 类型是 ECMAScript 最常用的类型. 2.javaScript 中的 Array 类型和其他语言中的数组有着很大的区别. 3.虽然数组都是有序排列,但 javaScript中的数组每个元素可以保存任何类型. 4.javaScript 中数组的大小也是可以调整的. 二.创建数组的两种方式: 1.new 运算符创建数组 var box = new Array(); //创建了一个数组,数组属于object类型 var box = new Array

javascript中数组的22种方法

× 目录 [1]对象继承 [2]数组转换 [3]栈和队列[4]数组排序[5]数组拼接[6]创建数组[7]数组删改[8]数组位置[9]数组归并[10]数组迭代[11]总结 前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和val

javascript 学习小结 (二) by FungLeo

javascript 学习小结 (二) by FungLeo 前言 前面写过一个学习小结javascript 学习小结 JS装逼技巧(一) by FungLeo 那篇博文总结的东西还是比较多的. 但是JS有很多的内容,都是很有用的知识点,不可能一下子记住.因此,我的学习小结的会一直更新. 因为学习进度的不同,可能每篇博文的长短也不一样,有的学的东西多,就长点. 查询某个字符串在某个数组中的索引值 笨方法 我的基础比较差,所以很多东西是记不住的.因此,我在需要这样做的时候,我写了如下代码 var

JavaScript的数组实现队列与堆栈的方法

JavaScript的数组实现队列与堆栈的方法 今天在项目中要使用JavaScript实现数据结构中的队列和堆栈,这里做一下总结. 一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! 如下图所示: 二. 在JavaScript中实现队列和堆栈 在JavaScript中实现队列和数组主要是通过数组,js数组中提供了以

一些有用的javascript实例分析(二)

原文:一些有用的javascript实例分析(二) 1 5 求出数组中所有数字的和 2 window.onload = function () 3 { 4 var oBtn = document.getElementsByTagName("button")[0]; 5 var oInput = document.getElementsByTagName("input")[0] 6 var oStrong = document.getElementsByTagName

javascript 判断数组中的重复内容的两种方法 by FungLeo

javascript 判断数组中的重复内容的两种方法 by FungLeo 前言 一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false. 思路 把数组变成字符串 循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复 如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢? 方法一 indexOf() 和 lastIndexOf() 对比法. 首先,我们构建代码: