js数组定义、属性及方法(push/pop/unshfit/shfit/reverse/sort/slice/splice/indexOf/lastIndexOf)
数组
一、定义数组
* 字面量方式
var 数组名称 = [ value,value,... ]
* 构造函数方式
var 数组名称 = new Array(value,value,...); var 数组名称 = new Array(length)
创建对象方式创建数组分析图

附:var num1 = 100; // number var num2 = new Number(100); // object
var str1 = 'string'; // string var str2 = new String('string'); // object
var boo1 = true; // Boolean var boo2 = new Boolean(true); // object
var arr1 = [1,2,3,4]; // object var arr2 = new Array(1,2,3,4); // object
二、数组分类
1.索引数组 - 默认创建的数组
(1)创建了空数组 (2)基于空数组创建索引数组
格式:var 数组名称 = new Array( ); 数组名称[索引值] =值;
【索引值是数字(从0开始)】
注:当在某个具体位置上没有存储任何值时 - undefined
2.关联数组 - 类似于JavaScript的对象
格式:var 数组名称 = new Array( ); 数组名称[索引值] =值;【索引值是字符串】
注:ECMAScript官方规范中并没有提供关联数组的概念
3.稀疏数组
概念:数组的长度大于数组中元素的个数 数组中元素没有值的情况下,默认undefined
三、数组的属性-长度
非稀疏数组: length 属性的值 = 当前数组包含元素的个数。
稀疏数组: length 属性的值 > 当前数组包含元素的个数。
eg: var arr2 = [ ]; arr2[14] = ‘a’ ; console.log( arr2.length );// 输出 15
四、操作(获取/修改/删除)
获取数组中的元素:数组名称[索引值]
修改数组中的元素:数组名称[索引值] = 新的值
删除数组中的元素:delete 数组名称[索引值]
注:只删除对应位置上的值,但位置保留 - undefined
遍历数组
* for语句: 遍历数组可以控制的开始和结束
* for.in语句:只能遍历数组从开始到结束
变量与数组
变量的赋值操作解析图

数组的赋值操作解析图

五、 二维数组
概念: 数组的嵌套结构 遍历:for嵌套语句
六、常见的操作方法
- 检测数据类型
- 转换方法 toString( )
- 进出栈—添加/删除 【对原数组有影响;删除则返回元素 添加则返回长度】
push( ) - 向数组的最后添加元素 pop() - 删除数组中最后一个元素
unshfit( ) - 向数组的开始添加元素 shfit( ) - 删除数组中第一个元素
- 排序方法
reverse( ) - 颠倒数组中元素的顺序
sort( ) - 对数组的元素进行排序
【注: 默认排序不是由小到大的排序。若是两位数,则按第一位数来排列】
方法:通过 数组名称.sort( ) 里面构造函数,来改变默认的排序,使得按顺序序排列。
eg: arr.sort(function(a,b){
return a < b ; ------ < 由大到小; > 由小到大
});
- 截取方法:
slice(start,end) 【注:对原数组没有任何影响】
start---表示从数组的哪个索引值开始截取; end---默认情况下,表示数组最后结束
设置值: 表示截取到当前索引值的前一个 返回值: 截取的结果
var arr1 = arr.slice(1,3); console.log(arr,arr1);
splice(index, howmany, element1,element2,...elementN) 【注:默认是一个数组】
index---表示当前数组的索引值(删除或添加的位置)
howmany ---表示删除元素的个数(若为0,则表示不删除) element1---表示添加的元素
* 注意 - 被添加到数组的 index 位置上; 返回值 - 表示当前删除的元素
- 搜索内容—>位置
indexOf(element)
element - 表示在数组中搜索的元素内容
用法:从数组中索引值为0开始搜索,依次向后; 返回值:第一个匹配的元素的索引值
注:如果搜索的元素在数组中不存在,则返回 -1
lastIndexOf(element)
element - 表示在数组中搜索的元素内容
用法: 返回值:最后一个匹配的元素的索引值
js数组定义、属性及方法(push/pop/unshfit/shfit/reverse/sort/slice/splice/indexOf/lastIndexOf)的更多相关文章
- js中Array数组的属性和方法
这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...
- JS数组定义
JS数组定义收藏 function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.create ...
- js函数的属性和方法
js函数的属性和方法 前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解j ...
- js数组去重五种方法
今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- Python使用property函数定义属性访问方法如果不定义fget会怎么样?
我们知道Python使用property函数定义属性访问方法时的语法如下: 实例属性=property(fget=None, fset=None, fdel=None, doc=None) 而是要@p ...
- Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析
Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...
- JS 数组array方法push, pop, unshift, shift, slice,splice,contact, join, sort
Array:数组对象用来在单独的变量名中存储一系列的值 定义数组: 1. var arrayObj = new Array(); 2. var arrayObj = ...
- js数组定义和方法 (包含ES5新增数组方法)
数组Array 1. 数组定义 一系列数据的集合成为数组.数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]. 2. 数组创建方式 (1) 字面量方法 ...
随机推荐
- ubuntu安装-Caffe依赖
参考链接:http://my.oschina.net/u/939893/blog/163921 1. 安装numpy相对简单,以下命令可以完成 apt-get install python-numpy ...
- FastFDS常用命令
1.启停fastdfs相关服务 #start fastdfs 启动服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/loca ...
- mysql 读写分离 ,mysql_proxy实现
下载安装mysql_proxy: 解压后, 该目录包含已经编译好的二进制文件 . 1: 利用mysql_proxy实现负载均衡 执行mysql_proxy ./mysql-proxy-path/bin ...
- 搭建`wenblogic`执行`install`脚本失败
搭建weblogic服务,前期准备都已经完成,安装包都是已上传,执行install_wls1213.sh脚本,出现以下报错: install_wls1213.sh: line 1: rectory: ...
- PowerDesigner工具
PowerDesigner是一款数据库设计与建模工具,开发人员可以在上面设计表结构,而不用一开始就创建数据库中的表,因为设计阶段数据库表结构会经常变动.设计完后可以导出创建所有表的SQL脚本,直接执行 ...
- Java多线程中Sleep与Wait的区别
Java中的多线程是一种抢占式的机制 而不是分时机制.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行. 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数 ...
- 训练1-D
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果. Input 每行包含 ...
- nyoj2-吝啬的国度
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- 如何构建通用 api 中间层
零.问题的由来 开门见山地说,这篇文章是一篇安利软文~,安利的对象就是最近搞的 tua-api. 顾名思义,这就是一款辅助获取接口数据的工具. 发请求相关的工具辣么多,那我为啥要用你呢? 理想状态下, ...
- 【ACM-ICPC 2018 南京赛区网络预赛 I】Skr
[链接] 我是链接,点我呀:) [题意] 让你把一个字符串的所有回文子串加起来.(当做数字加起来) 求他们的和. [题解] 回文树. 从两个根节点分别遍历整棵回文树. 按照每个节点的定义. 得到每个节 ...