JavaScript总结—数组

Array类型

ECMAScript数组的每一项可以保存任何类型的数据。

创建数组的两种方式

(1)使用Array()构造函数

var colors = new Array(20);

var colors = new Array("red","blue","green");

(2)数组字面量表示法

var colors = ["red","blue","green"];

修改、新增

var colors = ["red","blue","green"]

colors[2] = "black"; //修改

colors[3] = "brown"  //新增

属性

(1)constructor:

定义和用法

constructor 属性返回对创建此对象的数组函数的引用。

语法

object.constructor

实例

例子 1

在本例中,我们将展示如何使用 constructor 属性:

<script type="text/javascript">
var test=new Array();
if (test.constructor==Array)
{
    document.write("This is an Array");
}
</script>

(2)length:保存数组的项数

例:

var colors = ["red","blue","green"];

alert(colors.length);      //3

(3)prototype 属性使您有能力向对象添加属性和方法。

语法

object.prototype.name=value

实例

在本例中,我们将展示如何使用 prototype 属性来向对象添加属性:

<script type="text/javascript">
function employee(name,job,born)
{
    this.name=name;
    this.job=job;
    this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
employee.prototype.salary=null;
bill.salary=20000;
document.write(bill.salary);
</script>

检测数组

(1) if (value instanceof Array) {

//对数组执行某些操作

}

(2)if (Array.isArray(value)) {

//对数组执行某些操作

}

转换方法:

(1)toString();    把数组转换为字符串,并返回结果。

例:var arr = [12,"123",45,"old"];

console.log(arr.toString());

12,123,45,old

(2)valueOf();     返回数组对象的原始值

例子:

var arr = [12,"123",45,"old"];

console.log(arr.valueOf());

[12, "123", 45, "old"]

(3)toLocaleString();    把数组转换为本地数组,并返回结果。

<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.toLocaleString())
</script>
George, John, Thomas

(4)join();    把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

例:var colors = ["red","blue","green"];

alert (color.join("||"));

var arr = [12,"old",14,"young"];

console.log(arr.join(||));

12||old||14||young

栈方法:LIFO(last-in-fisft-out)

插入和移除数据,只发生在栈的顶部

(1)push() 可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度

例:

var arr = [];

arr.push(1);// 返回数组长度 1

arr;// [1]

arr.push(2,3);

arr;// [1,2,3]

(2)pop() 从数组末尾移除最后一项,并返回移除的项

var arr = [1, 2, 3];

arr.pop();// 返回 3

arr;// [1,2]

队列方法:FIFO(first-in-first-out)

队列列表的尾端添加项,从列表的前端移除项

(1)push() 可以接收任意数量的参数,把它们逐个添加到数组的末尾

(2)shift() 移除数组的第一个项并返回该项

var arr = [1, 2, 3];

arr.shift();// 返回 1

arr;// [2,3]

排序方法:

(1)reverse(): 反转数组的顺序

var arr = [1, 2, 3];

arr.reverse();// [3, 2, 1]

arr;// [3, 2, 1]

(2)sort :按升序顺序排列数组

功能:对数组中元素进行排序

语法:sort([sortby])

参数:

如果没有指定sortby参数,默认排序是按照字母的先后顺序排序的;

sortby是一个函数名,这个函数规定元素的排序规则

arr.sort(orderby); //将函数的地址传给sort方法

function orderby(a,b)

{

return a-b;   //对数值大小进行排序

}

a-b的结果:

a-b >0  返回大于0的值

a-b = 0  返回等于0的值

a-b < 0  返回小于0的值

按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

<script type="text/javascript">
function sortNumber(a,b)
{
    return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />")
document.write(arr.sort(sortNumber));
</script>

连接方法:

concat():方法用于连接两个或多个数组

<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
 
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
 
document.write(arr.concat(arr2))
 
</script>
结果
George,John,Thomas,James,Adrew,Martin

获取子数组方法:

slice():从某个已有的数组返回选定的元素

arrayObject.slice(start,end)

参数


描述


start


必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。


end


可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值

返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

// slice(开始下标, 结束下标(可选,默认为数组长度))

[‘a‘, ‘b‘, ‘c‘, ‘d‘].slice(1);// ["b", "c", "d"]

[‘a‘, ‘b‘, ‘c‘, ‘d‘].slice(1, 2);// ["b"]

[‘a‘, ‘b‘, ‘c‘, ‘d‘].slice(1, 3);// ["b", "c"]

(3)splice()

// splice(开始下标, 删除个数,插入元素(可以多个))

var arr = [1, 2, 3, 4];

arr.splice(1, 2);// [2,3]

arr;// [1,4]

arr = [1, 2, 3, 4];

arr.splice(1, 2, ‘a‘, ‘b‘, ‘c‘);// [2,3]

arr;// [1, "a", "b", "c", 4]

位置方法:

(1)indexOf(): 找着元素所在的下标,如果能查找到,则返回。否则返回-1

[‘a‘, ‘b‘, ‘c‘, ‘d‘].indexOf(‘c‘); // 2

[‘a‘, ‘b‘, ‘c‘, ‘d‘].indexOf(‘g‘); // -1

(2)lastIndexOf(): 从末尾开始往前找

[‘c‘, ‘d‘, ‘c‘].lastIndexOf(‘c‘); // 2

[‘a‘, ‘b‘, ‘c‘, ‘d‘].lastIndexOf(‘g‘); // -1

迭代方法:对数组的每一项运行给定的函数

(1)every()  数组中是否每个元素都满足指定的条件。

var isAllPositive = [3, 4, -1].every(function(each){

return each > 0;

});

isAllPositive; // false;

isAllPositive = [3, 4].every(function(each){

return each > 0;

});

isAllPositive; // true;

(2)filter()  从数组中找出所有符合指定条件的元素。

// 找出所有正数

var res = [3, 4, -1].filter(function(each){

return each > 0;

});

res; //[3,4]

(3)forEach()  遍历数组。

[‘a‘ ,‘b‘ ,‘c‘].forEach(function(item, index, arr){

console.log(item,index);

});

// 输出 ‘a‘ 0  ‘b‘ 1 ‘c‘ 2

(4)map()    将数组映射成另一个数组。

// 内容 * 2

[1, 2, 3].map(function(each){

return each * 2;

});

some()    数组中是否有元素满足指定的条件。

// 是否有正数

var isSomePositive = [3, 4, -1].some(function(each){

return each > 0;

});

isSomePositive; // true;

isSomePositive = [-3, -4].every(function(each){

return each > 0;

});

isSomePositive; // false;

归并方法:

reduce():

reduce(function(prev,cur,index,array){

})

参数:

prev: 前一个值

cur: 当前值

index: 项的索引

array: 数组对象

从数组的第一项开始,逐个遍历到最后,将数组合成一个值。

// 数组内容求和。0 为初始值

[1, 2, 3].reduce(function(prev, each){

return prev + each;

}, 0);

// 返回 6

reduceRight(): 从数组的最后一项开始,逐个遍历到第一项

循环遍历数组:

时间: 2024-10-26 15:35:27

JavaScript总结—数组的相关文章

JavaScript操作数组

数组被描述为一个存储元素的线性集合,元素可以通过索引来任意存取. 几乎所有的编程语言都有类似的数据结构,但是Javascript中的数组却略有不同. Javascript中的数组是一种特殊的对象,所以在数组的操作效率上不如其他语言中的数组高. 也因为数组再JavaScript中被当做对象,所以它有很多属性和方法可以再编程时使用. 下面就简单介绍一下JavaScript中的数组的使用方法. 注:以下所有的JavaScript代码均在 jsshell 中运行,一些方法可能在其他环境中(如浏览器和su

javascript中数组的22种方法 (转载)

前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和valueOf()方法 [toString()] toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 [注意]该方法的返回值与不使用任何参数

javascript常用数组算法总结

1.数组去重 方法1: JavaScript //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i < arr.length; i++) { if (result.indexOf(arr[i]) == -1) result.push(arr[i]); } return result; } 1 2 3 4 5 6 7 8 9 //利用数组的indexOf方法 function unique (arr)

JavaScript定义数组

JavaScript定义数组有两种方式: 1.通过Arrary()构造函数定义数组. 2.通过直接赋值法定义数组. Arrary()构造函数定义数组 格式一: var name = new Array(num); name[0] = 元素1; …… name[num-1] = 元素num; 格式二: var name = new Array(); name[0] = 元素1; name[0] = 元素2; name[0] = 元素3; …… 格式三: var name = new Array(元

私人定制javascript中数组小知识点(Only For Me)

先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好,便是晴天! 媳妇说:老公你太有诗意了. 老公:滚犊子,安不好我整死你! 数组的概念 javascript数组是值得有序集合,不过它实属一个javascript对象的特殊形式,这是一个很重点的定性. 创建数组 1.var a=new Array();//等同于[] 2.var a=new Array(

PHP的数组值传入JavaScript的数组里

<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html><head>       <title>PHP的数组值传入JavaScript的数组里</title>       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><s

JavaScript判断数组是否包含指定元素的方法

本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 /** * Array.prototype.[method name] allows you to define/overwrite an objects method * needle is the item you are searching for * this is a special variab

JavaScript的数组

一.Array 数组概述: 1.Array 类型是 ECMAScript 最常用的类型. 2.javaScript 中的 Array 类型和其他语言中的数组有着很大的区别. 3.虽然数组都是有序排列,但 javaScript中的数组每个元素可以保存任何类型. 4.javaScript 中数组的大小也是可以调整的. 二.创建数组的两种方式: 1.new 运算符创建数组 var box = new Array(); //创建了一个数组,数组属于object类型 var box = new Array

javascript中数组的22种方法

× 目录 [1]对象继承 [2]数组转换 [3]栈和队列[4]数组排序[5]数组拼接[6]创建数组[7]数组删改[8]数组位置[9]数组归并[10]数组迭代[11]总结 前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和val

[转] 有趣的JavaScript原生数组函数

在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘object’而不是‘array’.然而执 行[] instanceof Array返回true.此外,还有类数组对象使问题更复杂,如字符串对象,arguments对象.arguments对象不是Array的实例,但却 有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作. 在本文中,