数组

一、定义数组

* 字面量方式

 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)的更多相关文章

  1. js中Array数组的属性和方法

    这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...

  2. JS数组定义

     JS数组定义收藏 function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.create ...

  3. js函数的属性和方法

    js函数的属性和方法 前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解j ...

  4. js数组去重五种方法

    今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...

  5. 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解

    第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一.    引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...

  6. Python使用property函数定义属性访问方法如果不定义fget会怎么样?

    我们知道Python使用property函数定义属性访问方法时的语法如下: 实例属性=property(fget=None, fset=None, fdel=None, doc=None) 而是要@p ...

  7. Python使用property函数和使用@property装饰器定义属性访问方法的异同点分析

    Python使用property函数和使用@property装饰器都能定义属性的get.set及delete的访问方法,他们的相同点主要如下三点: 1.定义这些方法后,代码中对相关属性的访问实际上都会 ...

  8. JS 数组array方法push, pop, unshift, shift, slice,splice,contact, join, sort

    Array:数组对象用来在单独的变量名中存储一系列的值   定义数组:         1. var arrayObj = new Array();         2. var arrayObj = ...

  9. js数组定义和方法 (包含ES5新增数组方法)

    数组Array 1. 数组定义 一系列数据的集合成为数组.数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]. 2. 数组创建方式 (1) 字面量方法 ...

随机推荐

  1. Spring DATA MongoDB @DBref查询,or和and联合查询

    @DBref文档关联,在按该类型查询的时候,在字段名后加上关联表的字段名即可,如: Criteria.where("bloggroup.$id"), $id代表关联表的oid字段. ...

  2. 搞不懂的算法-排序篇<1>

    最近在学习算法,跟着<Algorithms>这本书,可能是自己水平不够吧,看完排序算法后各种,希尔,归并,快排,堆的实现在脑子里乱成一锅粥,所以就打算大概总结一下,不求精确,全面,只想用平 ...

  3. ie6 中文字符编码 出现的问题解决

    0 前言   公司要求网页要支持ie6.7.8,结果我的设备在ie7.8.9均工作正常,而在ie6时就出现各种奇怪的错误,在这个背景下,开始动手解决网页不兼容ie6的情况.   1 搭建ie6的实验平 ...

  4. Difference between == and ===

    In swift 3 and above === (or !==) Checks if the values are identical (both point to the same memory ...

  5. matlab学习创建变量定义函数

    定义变量a,b,c,计算输出d >> a=-3;b=2;c=5;>> d=(a^2+b)/c;>> d=(a^2+b)/c d = 2.2000 系统默认变量  a ...

  6. JS 公鸡2文一只、母鸡1文一只、小鸡0.5文一只若一共有100文钱买100只鸡有多少种方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. ZJOI2015 幻想乡战略游戏 动态点分治_树链剖分_未调完

    Description 傲娇少女幽香正在玩一个非常有趣的战略类游戏,本来这个游戏的地图其实还不算太大,幽香还能管得过来,但是不知道为什么现在的网游厂商把游戏的地图越做越大,以至于幽香一眼根本看不过来, ...

  8. 洛谷P3165 [CQOI2014]排序机械臂 Splay维护区间最小值

    可以将高度定义为小数,这样就完美的解决了优先级的问题. Code: #include<cstdio> #include<algorithm> #include<cstri ...

  9. nginx的headers_more模块的使用

    nginx的headers_more模块用于 添加.修改或清除 请求/响应头,该模块不是nginx自带的,默认不包含该模块,需要另外安装.幸运的是openresty默认包含了该模块,可以直接使用. 该 ...

  10. 【BZOJ1125】【POI2008】poc - splay+哈希

    题意: Description n列火车,每条有l节车厢.每节车厢有一种颜色(用小写字母表示).有m次车厢交换操作.求:对于每列火车,在交换车厢的某个时刻,与其颜色完全相同的火车最多有多少. Inpu ...