js二维数组_Javascript数组

数组的概念:引用类型的对象。

  1. 本质:内存中存储多个数据的空间,再取个名字。
  2. 数据结构:数据结构不同,擅长的操作不同。
  3. 数组特点:便于数据的查找与维护。

数组的创建:

  1. 方法1:var 数组名=【元素1,元素2,元素3......元素n】;
  2. 注意:可以创建空数组,建议创建同时赋值!
  3. 方式2:var 数组名=new Array();

数组的使用:

  1. 下标:每个元素都有一个对于的房间号,默认从0开始,逐一递增。
  2. 元素:其实就是数组中保存的一个个数据,可以是各种数据类型。
  3. 访问数组中已有的元素:数组中元素的使用与普通变量完全一样。
  4. 使用数组名【下标】:获取对应下标的数据。
  5. 使用数组名【下标】=新值:将新值替换原值。

数组的属性:

  1. .length属性:记录着数组中理论上元素的个数。实际保存的是数组中最后一个元素下标+1。length的值与实际元素的个数不一定相同。
  2. 注意:length不能脱离数组单独使用,自动维护不需要手动修改。

常见操作:

  1. 获取数组中最后一个元素:arr【arr.length-1】;
  2. 获取元素中倒数第n个元素:arr【arr.length-n】;
  3. 在数组的最后追究一个新元素:arr.【arr.length】=新元素;
  4. 修改数组的length属性,可以达到删除元素的目的!
  5. 删除数组中最后一个元素:arr.length--;
  6. 删除数组中最后n个元素:arr.length-=n;
  7. 关于数组的本质:引用类型的对象
  8. 输出方式:dir:输出数据的结构及其内容,而不是立刻输出,点击小三角后才在内存中输出正确的内容!
  9. 遍历:依次查找数组中每个元素,并执行相同操作!
      for (var i=0;i<=arr.length;i++) {arr[i];}  

数组的分类:

  1. 索引数组:下标为数字的数组
  2. 关联数组:下标自定义的值
  3. 创建数组:var arr=【】;  //创建空数组;arr【“下标名”】;=值;  向空数组添加新元素,并自定义下标名。
  4. 使用数组:元素与普通数组一样,用法同普通数组。  取值:arr【下标名】  赋值:arr【下标名】=新值;
  5. 注意:关联数组的length属性失效,永远为0;
  6. 遍历:for in循环遍历关联数组!  
      for(var key in arr) {arr[key];}  

注释:key:用于每次循环保存临时变量下标的变量;in:关键词;arr:需要遍历的数组的数组名

   7.总结:数组的特点:便于数据的维护和查找!

   8.关联数组 vs 索引数组:关联数组:查找更快,效率更高。原因:直接定位元素,查找速度不受元素个数影响;索引数组:相对较慢!原因:只能遍历查找,查找效率受元素个数,位置影响!

数组的API

  1. API:别人已经写好的,咱们直接使用的程序。
  2. 数组:存储多个数据,并且提供操作这些数据的API对象。
  3. 数组转为string

3.1 string(arr);  arr.toString();

3.2 以上两个API都可以将索引数组转为字符串。------将数组中每个元素转为string然后之间用“,”拼接。

3.3 arr.join(“拼接符”);将数组中的每个元素按指定的拼接符拼接。注意:如果省略拼接符,默认用“,”拼接。

3.4 固定套路:

var str="<ANY>"+arr.join("</ANY><ANY>")+"</ANY>"elem.innerHTML=str;

4.数组的拼接与选取

  4.1 拼接:将多个元素或数组拼接为一个新数组;

 var new_arr=old_arr.concat(值,数组);

  注意:concat();返回新数组,不修改原数组;如果需要拼接的是一个数组,将数组中的元素打散为一个个元素在拼接!

  4.2 选取:选择数组中指定位置之间的元素,组成新数组返回。

  var new_arr=old_arr.slice(starti,endi);

  注意:不修改原数组

  如果一个API两个参数都是下标,一般含头不含尾!

slice(starti,starti+n);//n表示选取元素的个数

   支持负数参数:原理使用length属性。

arr.slice(starti,-n)<=>arr.slice(starti,arr.length-n);

并不是所有的API都支持负数参数,使用arr.length-n。

省略第二个参数:从起始位置一直选取到结尾。

var new_arr=arr.slice();

  同时省略两个参数:复制数组;

var new_arr=arr.slice();

5.数组的增删改----splice

5.1增加:arr.splice(starti,0,值1,值2,值3......值n);

  注意:在指定位置插入新值后,后续所有位置依次后移;如果插入的值是数组,不会打散,之间将数组插入指定位置。

  5.2删除:

arr.splice(starti,n);  //从starti位置开始删除n个元素

  注意:直接修改原数组;支持负数参数;可以省略第二个参数----一直删到结尾;有返回值----被删除的元素组成的新数据。

 5.3修改:

arr.splice(starti,n,值1,值2.....);  其实就是将原值删除,加入新值!  //从starti位置开始,删除n个元素,在加入新值

  注意:删除的元素不必与插入的元素个数保存一致!

6.排序:

 6.1翻转----反向:

  arr.reverse();  //将元素组中的元素按原顺序颠倒!

    注意:直接修改原数组,不返回新值;不能修改内容的顺序,只是头尾颠倒!

   6.2顺序排序:  arr.sort(比较器函数);  //将数组中的内容按大到小/按小到大的顺序排序 !

   注意:默认不传参数,将数组中的数据从小到大排序;直接修改原数组,不返回新值!

    原理:sort默认将数组中的元素转为字符串,再按照字符编码比较大小!

   6.3比较器函数:挨个比较两个元素之间的大小。

格式:

function comp(a,b){return a-b;}

     如果a>b,需要返回一个大于0的数!

     如果a=b,需要返回一个等于0的数!

     如果a<b,需要返回一个小于0的数!

7.栈:一端开口,一端封闭的数组结构!

7.1出栈,入栈:

  出栈:从数组中删除一个元素。

  入栈:向数组中添加一个元素。

  7.2队列:两端开口的数据结构

8.二位数组:

8.1

      eg:var arr=[[1,2,3,4],[3,4,5,6],[6,7,8,9]];

   8.2二维数组的遍历:分为两步:1、先获取二维数组中的每个子数组;2、遍历每个子数组!

JavaScript的一些资料

- JS知识点汇总 -

- 走进JavaScript函数世界 -

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java jtextfield 事件_JAVA JTextField事件处理

初学JAVA&#xff0c;笔记&#xff1a;package windows;import javax.swing.*;import java.awt.*;import java.awt.event.*;class WindowFlow extends JFrame implements ActionListener{private static final long serialVersionUID 1L;JTextField text1,text2;WindowFlow(St…

js封装函数_JavaScript基础-如何封装函数来改变元素的位置

点击右上方红色按钮关注“小郑搞码事”&#xff0c;每天都能学到知识&#xff0c;搞懂一个问题&#xff01;大家好&#xff01;我是/小郑搞码事/的小郑今天给大家分享JavaScript的基础知识-改变元素的位置。没错&#xff0c;用JS实现过动画的同学都应该了解一点&#xff0c;简单…

python查找指定字符所在行号_python查找字符串中某个字符

本文收集整理关于python查找字符串中某个字符的相关议题&#xff0c;使用内容导航快速到达。内容导航&#xff1a;Q1&#xff1a;Python里统计一个字符串中另一个字符串的个数答案为3(用正则)&#xff1a;1234>>>importre>>>sabababab>>>len(re.fin…

java jai create 方法_使用JAI扩展Java Image的功能

Java Image功能一直都在增强&#xff0c;但是向磁盘写一个图像文件或者返回一个PNG或JPEG依然比较难实现。但是我们可以使用Java Advanced Imaging(JAI)API来解决这个问题。JAI可以从SUN的Java站点下载&#xff0c;它包含在JDK 1.4的javax.imageio包中。要安装JAI&#xff0c;你…

python实现rm_python winrm模块使用

使用session方法###import winrmswinrm.Session(http://10.10.60.14:5985/wsman,auth(administrator,password))rs.run_ps(dir)rs.run_cmd(cd /d d: & test.bat)print r.std_outprint r.std_err使用Protocol方法###import winrmconn winrm.Protocol(endpointhttp://10.10…

java程序设计与实践教程 王薇 doc_Java程序设计与实践教程 王薇主编 答案

Java程序设计与实践教程 王薇 主编 董迎红 副主编 课后习题 答案第1章 JAVA简介一、判断题1.√ 2.√ 3. 4. 5. 6.√ 7.√ 8.√ 9. 10.二、填空题1.Application Applet 2. 类(字节码文件、目标文件) .class3.对象 4. 主 5. J2SE J2EE J2ME三、选择题1.B 2. D 3.B 4.B 5. A四、简…

树莓派python开发工具哪个好_Thonny——树莓派上Python的最新IDE

Thonny是最新的Raspbian系统中直接自带的Python IDE&#xff0c;支持Python3.6&#xff0c;更新到最新的Raspbian之后无需安装其他&#xff0c;就能打开使用。在Menu>Programming中就能找到这个IDE打开之后可以看到主要是两个区域&#xff0c;包括一个代码编辑区和一个shell…

java中常量final的用法_详解Java中final的用法

本文主要介绍了Java中final的使用方法&#xff0c;final是java的关键字&#xff0c;本文就详细说明一下它的使用方法,需要的朋友可以参考下概念final 具有“不可改变的”的含义&#xff0c;可以修饰 非抽象类、非抽象成员方法和变量。用 final 修饰的类不能被继承&#xff0c;没…

python弹球游戏绑定鼠标事件_用python和pygame游戏编程入门-弹球[鼠标控制]

本节我们再将鼠标的事件引入到这个动画中&#xff0c;要做什么呢&#xff1f;就是在动画中&#xff0c;如果按下鼠标左键&#xff0c;小球会停止移动&#xff0c;如果松开左键&#xff0c;小球会移动到鼠标的位置&#xff0c;然后继续刚才的运动&#xff1b;如果按下鼠标左键不…

maya藤蔓插件_Maya特效制作之植物生长动画制作教程(二)之多条藤蔓动画制作...

四、制作多条蔓藤植物下面我们要让很多植物在这个“崖壁”上生长出来&#xff0c;也就是要重复很多次前面的工作&#xff0c;当然可以这样一步一步地做&#xff0c;在“崖壁”面片上手动画很多的线&#xff0c;但下面尝试一种新的方法来制作&#xff0c;让粒子在“崖壁”面片Pl…

python自动发邮件运行正常就是收不到邮件是为什么_python stmp module 163邮箱发送邮件不成功...

开发环境:系统:Ubuntu 16.04 LTS版本:python 3.5.2邮箱服务器:stmp.126.com注意:1.不可正文群发带图,不然会被stmp.126.com认定为垃圾邮件,发不出去 - -!!! 也就是说该代码群发的话,只能用plain纯文本模式.2.由于我的邮箱服务器是126的,所以建议也使用126邮箱测试,测试的前提是…

mysql数据库导入导出_MySQL数据库导入导出详解

MySQL数据库的导入&#xff0c;有两种方法&#xff1a;1) 先导出数据库SQL脚本&#xff0c;再导入&#xff1b;2) 直接拷贝数据库目录和文件。在不同操作系统或MySQL版本情况1. 概述MySQL数据库的导入&#xff0c;有两种方法&#xff1a;1) 先导出数据库SQL脚本&#xff0c;再导…

python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

python列表切片和嵌套列表取值操作详解给出列表切片的格式&#xff1a;[开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略&#xff0c;下同)[开头元素:结尾元素(不含):步长]# 其中&#xff0c;-1表示list最后一个元素首先来看最简单的单一列表&#xff1a;…

python 装饰器有哪些_Python装饰器有哪些常见用途?

RSabet..123我使用装饰器主要用于计时目的def time_dec(func):def wrapper(*arg):t time.clock()res func(*arg)print func.func_name, time.clock()-treturn resreturn wrappertime_decdef myFunction(n):...好例子!不知道它做了什么.解释你在那里做什么,以及装饰者如何解决…

代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...

在完成了产品的基础开发以后&#xff0c;接下来需要进行一些周边的工作&#xff0c;这些周边工具将会帮助下一步优化产品。在完成了产品的基础开发以后&#xff0c;接下来需要进行一些周边的工作&#xff0c;这些周边工具将会帮助下一步优化产品。为什么要加应用统计和 Crash 收…

mmseg java_MMSeg中文分词算法

Java中有一些开源的分词项目&#xff0c;比如&#xff1a;IK、Paoding、MMSEG4J等等。这里主要说的是MMSEG4J中使用的MMSeg算法。它的原文介绍在&#xff1a;http://technology.chtsai.org/mmseg/&#xff0c;是用英文书写的&#xff0c;这是只是它的一个中文笔记。为什么中文要…

python查看文档的软件_Python __doc__属性:查看文档

前面介绍了使用 help() 函数来查看程序单元的帮助信息。比如导入 string 模块之后&#xff0c;即可使用 help() 函数来查看指定程序单元的帮助信息。例如&#xff0c;在交互式解释器中输入如下命令来查看 string 模块下 capwords() 函数的作用&#xff1a;>>> help(st…

python重写和装饰器_python中的装饰器

装饰器的本质&#xff1a;当你在用某个decorator来修饰某个函数func时&#xff0c;如下所示&#xff1a;decoratordef func():pass其解释器会解释成下面这样的语句&#xff1a;funcdecorator(func)本质是把一个函数当作参数传递到另一个函数中&#xff0c;然后再调用。def hell…

python3不等于号_python中的不等于号是什么

python中的不等于号用!表示。Python支持的比较运算符如下图所示比较运算符&#xff0c;也成关系运算符&#xff0c;用于对常量、变量或表达式的结果进行大小、真假等比较&#xff0c;如果比较结果为真&#xff0c;则返回 True&#xff1b;反之&#xff0c;则返回 False。比较运…

java的abstract的意思_java – spring中的abstract =“true”是什么意思?

Spring中的抽象bean有点不同于抽象类。事实上&#xff0c;Spring中的抽象bean甚至不需要映射到任何类。以此为例&#xff1a;和类&#xff1a;public class FooDao {private DataSource dataSource;private SomeHelper someHelper;private FooHelper fooHelper;//setters}publi…