Javascript 学习之数组 Array
数组在Javascript中占有很重要的地位。任何控件开发离不开数组的使用。
构造函数
new Array( ) new Array(size) new Array(element0, element1, ..., elementn)
参数
- size
-
期望的数组元素个数。返回的数组,1ength域将被设为size的值。
- element0, ... elementn
-
两个或多个值的参数列表。当使用这些参数来调用构造函数Array()时,新创建的数组的元素就会被初始化为这些值,它的length域也会被设置为参数的个数。
返回值
新创建并被初始化了的数组。如果调用构造函数Array()时没有使用参数,那么返回的数组为空,length域为0。当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为undefined的数组。当用其他参数调用Array{)时, 该构造函数将用参数指定的值初始化数组。当把构造函数作为函数调用,不使用new运算符时,它的行为与使用new运算符调用它时的行为完全一样。
下面介绍他的方法
1. Array.concat( )
数组连接,顾名思义就是2个以上的数组组合成一个数组。
eg:
var v1 = [1, 2, 3];
var v2 = new Array();
v2.push(4);
var v3 = new Array(5, 'e', 'n', 'd');
var array = v1.concat(v2, v3);
console.log(array);
结果:[1, 2, 3, 4, 5, "e", "n", "d"]
2.Array.join( )
语法
array.join( ) array.join(separator)
参数
- separator
-
在返回的字符串中用于分隔数组元素的字符或字符串,它是可选的。如果省略了这个参数,用逗号作为分隔符。
返回值
—个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。
描述
方法join()将把每个数组元素转换成一个字符串,然后把这些字符串连接起来,在两个元素之间插入指定的separator字符串。返回生成的字符串。
可以用String对象的split()方法执行相反的操作,即把一个字符串分割成数组元素。
eg:
var s = array.join();
var s1 = array.join(":");
console.info(s);
console.info(s1);
结果:
console.info(array.length); //8
array[100] = 100;
console.info(array.length); //101
array.length = 10;
console.info(array.length); //10
array.length = 100;
console.info(array.length); //100
4.Array.pop( )
数组的pop和push 可以模拟栈操作,先进后出
语法
array.pop( )
返回值
array的最后一个元素。
描述
方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined。
5.Array.push( )
语法
array.push(value, ...)
参数
- value, ...
-
要添加到array尾部的值,可以是一个或多个。
返回值
把指定的值添加到数组后的新长度。
描述
方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建——个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能
6.Array.reverse( )
将数组中元素颠倒顺序
7.Array.shift( )
语法
array.shift( )
返回值
数组原来的第一个元素。
描述
方法shift()将把array的第—个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的数组。
方法shift()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。
8.Array.unshift( )
语法
array.unshift(value, ...)
参数
- value, ...
-
要插入数组头部的一个或多个值。
返回值
数组的新长度
描述
方法unshift()将把它的参数插入array的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组新的元素0,如果还有第二个参数,它将成为新的元素1,以此类推。注意,unshift()不创建新数组,而是直接修改原有的数组。
示例
方法unshift()通常和方法shift()一起使用。例如:
var a = []; // a:[] a.unshift(1); // a:[1] 返回 1 a.unshift(22); // a:[22,1] 返回 2 a.shift( ); // a:[1] 返回 22 a.unshift(33,[4,5]); // a:[33,[4,5],1] 返回 3 9.Array.slice( )
语法
array.slice(start, end)
参数
- start
-
数组片段开始处的数组下标。如果是负数,它声明从数组尾部开始算起的位置。 也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。
- end
-
数组片段结束处的后一个元素的数组下标。如果没有指定这个参数 包含从start开始到数组结束的所有元素。如果这个参数是负数, 从数组尾部开始算起的元素。
返回值
一个新数组,包含从start到end(不包括该元素)指定的array元素。
描述
方法slice()将返回数组的一部分,或者说是一个子数组。返回的数组包含从start 开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素。
注意:该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice。
示例
var a = [1,2,3,4,5]; a.slice(0,3); // 返回 [1,2,3] a.slice(3); // 返回 [4,5] a.slice(1,-1); // 返回 [2,3,4] a.slice(-3,-2); // 返回 [3]; IE 4存在的Bug: 返回[1,2,3] 11.Array.sort( )
语法
array.sort( ) array.sort(orderfunc)
参数
- orderfunc
-
用来指定按什么顺序进行排序的函数,可选。
返回值
对数组的引用。注意,数组在原数组上进行排序,不制作副本。
描述
方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。
如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:
如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。
如果a等于b,就返回0。
如果a大于b,就返回一个大于0的值。
注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。
示例
下面的代码展示了如何编写按数字顺序,而不是按字母顺序对数组进行排序的比较函数:
// 按照数字顺序排序的排序函数 function numberorder(a, b) { return a - b; } a = new Array(33, 4, 1111, 222); a.sort( ); // 按照字母顺序的排序结果为: 1111, 222, 33, 4 a.sort(numberorder); // 按照数字顺序的排序结果为: 4, 33, 222, 1111
Javascript 学习之数组 Array的更多相关文章
- 学习Swift -- 数组(Array) - 持续更新
集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...
- PHP学习之数组Array操作和键值对操作函数(一)
PHP 中的数组实际上是一个有序映射.映射是一种把 values关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合, ...
- JavaScript学习笔记之Array
数组的定义: 1,var arr=new Array(); -->数组是特殊的对象,typeOf的返回值是object arr[0] arr[1] ... 2,var arr=new ...
- JavaScript学习笔记——数组
javascript数组数组是一个可以存储 一组 或是 一系列 相关数据 的 容器. 一.为什么要使用数组. (1)为了解决大量相关数据的存储和使用的问题. (2)模拟真是的世界. 二.如何创建数组 ...
- JavaScript学习笔记-数组(1)
数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引.JavaScript数组是无类型的:数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的类型.数 ...
- Javascript学习总结三(Array对象的用法)
javascript Array对象的常用API 1:concat concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.举例:var a1 = [ ...
- JavaScript数据类型检测 数组(Array)检测方式
前言 对于确定某个对象是不是数组,一直是数组的一个经典问题.本文专门将该问题择出来,介绍什么才是正确的javascript数组检测方式 typeof 首先,使用最常用的类型检测工具--typeof运算 ...
- JavaScript权威指南--数组Array
什么是数组 数组是值的有序集合.每一个值叫做元素,每一个元素在数组中有一个位置,用数字表示,称为索引.js数组是无类型的.动态的,也可能是稀疏的.每个数组都有length属性.数组最大能容纳42949 ...
- javascript学习笔记之array.sort
arrayName.sort()方法: 功能是实现排序(按ascii编码或按数字大小),可无参或有参使用,无参时默认升序排列.有参时可实现升序或降序排列,参数必须是具有返回值的方法,当方法表达式大于0 ...
随机推荐
- Lucene 全文检索 Lucene的使用
Lucene 全文检索 Lucene的使用 一.简介: 参考百度百科: http://baike.baidu.com/link?url=eBcEVuUL3TbUivRvtgRnMr1s44nTE7 ...
- javascript javascript面向对象的理解及简单的示例
javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...
- C++日志模块实现的经验之谈
以类的方式对日志模块进行封装,可创建一个单实例的接口或创建一个全局的日志对象指针,同时提供相应的对外写日志接口. 写日志的接口采用可变参数来建立,可使用va_list类型和##args参数,同时在写日 ...
- 前端开发快速定位bug的一些小技巧
1,根据报错信息定位: (1) Uncaught TypeError: Cannot read property 'attr' of undefined; 此类型为变量或者对象属性未定义类型. (2) ...
- 为asp.net core 自定义路由动态修改
根据IApplicationModelConvention 接口 实现相应的方法 /// <summary> /// 定义个类RouteConvention,private 来实现 IAp ...
- 数据结构8: 双向链表(双向循环链表)的建立及C语言实现
之前接触到的链表都只有一个指针,指向直接后继,整个链表只能单方向从表头访问到表尾,这种结构的链表统称为 “单向链表”或“单链表”. 如果算法中需要频繁地找某结点的前趋结点,单链表的解决方式是遍历整个链 ...
- SPI 实现原理及运用
SPI原理 SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的.在java.util.ServiceLoader的文档里有比较详 ...
- for别名
name:for(int i =0 ;i< a.length;i++){ System.out.println(i); for(int j =0;j<i;j++){ continue na ...
- django导入 views.py
网上找了各种教程..均无解....自己摸索出来了..分享 给大家... 首先INSTALLED_APP 加入 自己的 app pili,然后如下图 from App名称 import views 就 ...
- C语言中变量的存储类型
在C语言中,对变量的存储类型说明有以下四种: auto 自动变量register 寄存器变量extern 外部变量static 静态变量 自动变量和寄存器变量属于动态存储方式,外部变量和静态变 ...