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);

结果:

1,2,3,4,5,e,n,d  不传分隔符,默认以逗号隔开

1:2:3:4:5:e:n:d

3.Array.length

数组长度,这个属性不多说什么,有一点需要说明的是:

var array =new Array();

array[100] = 100; 则定义了长度等于101的数组,其他位置没有值得默认是undefined;

array.length=10;  则截取了数组长度等于10,后面的移除了。

eg:

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
时间: 2024-10-08 17:58:30

Javascript 学习之数组 Array的相关文章

JavaScript学习--Item30 数组进阶全掌握

在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活.强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型元素,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改. 1.创建数组 在JavaScript多种方式创建数组 1.构造函数 1.无参构造函数,创建一空数组 var a1=new Array()

学习Swift -- 数组(Array) - 持续更新

集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方法 // 如果声明可变数组 就设置为变量 var someMutableArray = [Int]() // 声明了空数组 类型为Int // 相反声明不可变数组就设置为常量 let someArray = Array(count: 5, repeatedValue: 0.03) // 声明了一个不

Javascript学习之数组详解

本文和大家分享的主要是javascript中数组相关内容,一起来看看吧,希望对大家学习javascript有所帮助. 设计数组的函数方法 toString, toLocaleString, valueOf, concat, splice, slice indexOf,lastIndexOf, push, pop, shift, unshift, sort, reverse map, reduce, reduceRight, filter, every, some, forEach 创建数组 ·

JavaScript学习笔记之Array

数组的定义: 1,var arr=new Array();      -->数组是特殊的对象,typeOf的返回值是object arr[0] arr[1] ... 2,var arr=new Array("","")          -->在此处直接加入数组元素如果是数值需要有2个以上,否则只有一个数值会被解析成数组的长度 3,var arr=["",""] 4,var arr=[] arr[0]= arr[1

Javascript学习总结三(Array对象的用法)

javascript Array对象的常用API 1:concat concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.举例:var a1 = ['aa','bb'];var a2 = ['cc','dd'];var a3 = a2.concat(a1); 2:every every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供).every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表

JavaScript学习笔记——数组

javascript数组数组是一个可以存储 一组 或是 一系列 相关数据 的 容器. 一.为什么要使用数组. (1)为了解决大量相关数据的存储和使用的问题. (2)模拟真是的世界. 二.如何创建数组 (1) 通过对象的方式来创建. var a=new Array(); A.直接赋值 var a=new Array(元素1,元素2,元素3,元素4,........) ********************************************** var a=new Array(数值)

javascript学习笔记之array.sort

arrayName.sort()方法: 功能是实现排序(按ascii编码或按数字大小),可无参或有参使用,无参时默认升序排列.有参时可实现升序或降序排列,参数必须是具有返回值的方法,当方法表达式大于0时将交换两数的顺序.即 arrayName.sort(表达式 { if(表达式>0) 交换顺序; else if(表达式<0) 不执行操作; else //表达式=0 根据浏览器支持选择具体操作; }); 其中表达式(==方法)将会决定排序原则,具体地实例是 arrayName.sort(func

Javascript学习记录——数组去重

var arr = [1, 2, 3, 5, 5, '45', '45', 4, 1, '1', '2'] for (var i = 0; i < 10000; i++) { arr.push(i)//这里给arr添加10000项,方便后面对各个方法性能的观看 } /** * 方法一:借用一个结果数组,原数组中的元素与结果数组进行比较,若是不存在与原数组全等的元素,则将原数组元素存入结果数组中. * @param arr 传入的数组 * @returns {Array} 返回的去重后的数组 */

javascript学习笔记 - 引用类型 Array

二 Array 1.可以通过length属性删除或创建新的数组项 arr = [1,2,3]; arr.length = 4;//增加 [1,2,3,undefined] arr.length = 2;//删除 [1,2]arr[6] = 6; // [1,2,3,undefined,undefined,6] 2.检测数组 Array.isArray() 3.转换方法 调用数组的toString()方法,返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串.实际上,为了创建这个字符串,