Array类型

Array类型

创建方法:

(1)构造函数法:

var color = new Array();          //创建一个空数组,省略new也是可以的,等价于new color = Array();
var color = new Array(20);      //创建一个length为20的数组
var color = new Array("red", "blue", "green");        //创建一个包含3个字符串的数组

(2) 数组字面量表示法(不会调用构造函数):

var color = ["red", "blue", "green"];     //创建一个包含3个字符串的数组
var color = [];            //创建一个空数组

数组中的值的访问:

  方括号加索引值。索引值小于数组项数,返回对应项的值。索引超过数组现有项,数组会自动增加到该索引值加一的长度

var color = ["red", "blue", "green"];
alert(color[0]);            //显示第一项
color[2] = "black";       //修改第三项
color[3] = "brown";    //新增第四项

 length属性

  length不是只读,可通过其向数组添加或移除项。

var color = ["red", "blue", "green"];
color[length-1] = "black";               //在数组末尾添加“black”
color.length = 3;                            //数组长度变为3,black被移除
color.length = 4;                            //数组长度变为4,最后一项为undefined
alert(color[3]);                              //undefined

1 检测数组

方法:

  • 对于一个全局作用域:使用instanceof操作符

    if (value instanceof Array) {
            doSomething();
    }
  • 网页包含多个框架,含有两个以上全局作用域,使用Array.isArray()函数

    if (Array.isArray(value)) {
            doSomething();
    }

2 转换方法

  • toSting() : 对数组每一项都元素调用toString()方法,返回一个以逗号分隔的字符串
  • toLocaleString():对数组每一项都元素调用toLocaleString()方法,返回一个以逗号分隔的字符串
  • valueOf():返回的还是数组
  • join():可以指定分隔符来返回数组的字符串。

    alert(color.join(","));        //red, green, blue
    alert(color.join("||"));       //red||green||blue

3 栈方法

  • push(value):把一个元素添加到数组的末尾;
  • pop(value):从数组末尾删除并返回一个元素

4 队列方法

  • shift():移除数组第一项元素并返回,结合push()方法可以像队列一样使用数组;
  • unshift():在数组前端添加任意项并返回数组的新长度,结合pop()方法从反方向模拟队列(在数组前端添加,后端移除)

注意:在IE7及更早版本,unshift()总返回undefined而不是数组长度!!!!!!!

5 重排序方法

  • reverse() :将数组反转
  • sort():默认情况下按升序排列数组,对数组中每一项调用toString(),然后比较字符串。可向其传递一个函数参数,来改变指定比较的方法。
 1 function compare(value1, value2) {
 2     if (value1 < value2) {
 3              return -1;
 4     }
 5     if (value1 > value2) {
 6             return 1;
 7     } else {
 8             return 0;
 9     }
10 }
11
12 var value = [1, 5, 3, 6, 4, 2];
13 value.sort(compare);
14 alert(value);            //1, 2, 3, 4, 5, 6

6 操作方法

  • concat():创建当前数组的一个副本,若传递了参数,则把参数中的值追加到数组后面。
  • slice():

    slice(x);        //返回x到数组末尾的所有项
    slice(x, y);    //返回x到y之间但不包括y的所有项
  • splice():始终返回一个数组,内容是从原是数组删除的项。若没有删除项,则返回的是空数组。

    • 删除:指定两个参数,要删除的第一项的位置和要删除的项数。如:splice(0, 2)删除数组的前两项
    • 插入:提供三个或以上参数:起始位置,0(要删除的项)和要插入的项
    • 替换:提供三个或以上参数:起始位置,要删除的项,要插入的项。

7 位置方法

  • indexOf():接受两个参数,要查找的项和表示查找起点位置的索引(从前往后找)
  • lastIndexOf():接受两个参数,要查找的项和表示查找起点位置的索引(从后往前找)

都返回查找项在数组中的索引位置,没有找到返回-1。

2.8 迭代方法

  • every():对数组中每一项运行给定函数,对每一项都返回true则返回true;
  • filter():对数组中每一项运行给定函数,返回该函数会返回true的项组成的数组;
  • forEach():对数组中每一项运行给定函数。没有返回值;
  • map():对数组中每一项运行给定函数,返回每次函数调用的结果组成的数组;
  • some():对数组中每一项运行给定函数,对仁一项返回true则返回true。

以上方法都不会修改原数组中的值。

传入这些方法中的函数会接受三个参数:数组项的值,该项在数组中的位置和数组对象本身。如:

var numbers = [1, 2, 3, 4, 3, 2, 1];
ver everyResult = numbers.every(function(item, index, array){
        reutnr (item > 2);
});

8 缩小方法

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

两个方法都接受两个参数:一个在每一项上调用的函数和(可选的)作为缩小基础的初始值。传给它们的函数接受4个参数:前一个值,当前值,项的索引和数组对象这个函数返回的任何值都会作为第一个参数自动传递给下一项。如:

var values = [1, 2, 3, 4, 5];
var sum = values.reduce(function(pre, cur, index, array){
    return prev + cur;
});
alert(sum);        //15
时间: 2024-11-08 18:25:58

Array类型的相关文章

JavaScript的进阶之路(三)引用类型之Object类型和Array类型

引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var obj1= new Object(); console.log(obj1); obj1.name="吴琼"; obj1.age=28; console.log(obj1.name+" "+obj1.age); //对象字面量语法 ,有点封装的感觉 var obj2 = {

【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保存任何类型的数据:js数组的大小是可以动态调整的 */ var colors = ["red", "blue", "green"];

Object类型与Array类型

总结--JS中的引用类型: Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型, Function类型,RegExp类型,单体内置对象(Global对象,Math对象) 1.Object类型:我们看到的大多数其他对象都可以称为是Object对象 1)创建Object对象的方式有两种:  第一种是使用new操作符后跟Object构造函数    var person =new Object();   //var person ={};    per

引用类型-Array类型~ 前端学习之路

今天开始记录每天所学的重点,为了加深印象也为了今后的复习. 今天学习的重点是引用类型中Array类型,Array类型中的栈方法,队列方法,重排序方法,操作方法,位置方法,迭代方法,归并方法.这几个方法我感觉尤为重要,因此记录下来,以便忘记了可以回顾. (一)栈方法 首先要知道的是栈是一种后进先出的数据结构,也就是最先添加的项最先移除.在JS中提供有两种方法,push()和pop()方法是实现类似于栈的行为. push()方法可以接受任意数量的参数,并且把它们放在数组的末尾,最后返回修改后数组的长

理解javascript中的Array类型

引子: 从事前端开发有段时间了,个人观点:想在前端开发这条路上走的更远,不仅要学好HTML&HTML5.CSS&CSS3,最重要的就是要学好javascript了.所以打好javascript基础是非常有必要,今天就平时所用的javascript中的数组Array类型做个整理.本人前端初学者,如果以下内容对您有帮助的话本人也非常欣慰,如果写的不好,请提出您的见解,共享下您在学习js中的宝贵经验,谢谢! Array类型是js中非常常用的数据类型了,这里就不脑补了,至于什么是数组类型,请绕道w

JavaScript入门之数组:Array类型详解

数组应该是每个语言中都用得极度频繁的数据类型,JavaScript也不例外. 个人认为,Js中的Array类型非常强大. 首先没有C/C++等语言需要在数组初始化时指定数组长度(并不可变)的要求. 也不需要指定特定的基本数据类型(Number,String,Boolean,Null,Undefined,Object),也就意味着,一个数组中可以存多种数据类型的值. 我想总结一下Array的常用方法,在这之前,先介绍一下Array的基本用法: 基本用法: 1.创建数组: //创建空数组 var a

JavaScript中Array类型方法总结

Array类型是ECMAScript中最常用的类型之一,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.ECMAScript数组的每一项可以保存任何类型的数据.这里总结了数组类型的大多数方法,方便以后查找使用. 一.创建数组的基本方式 创建数据的基本方式有两种: 1.使用Array构造函数 var colors=new Array();var colors=new Array(20); //创建length值为20的数组var colors=new Array("red&qu

mongo中查询Array类型的字段中元素个数

I have a MongoDB collection with documents in the following format: { "_id" : ObjectId("4e8ae86d08101908e1000001"), "name" : ["Name"], "zipcode" : ["2223"] } { "_id" : ObjectId("4e

JS引用类型(2)——Array类型

[2]Array类型ECMAScript数组的每一项可以保存任何类型的数据,并且大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据. (1)创建数组 1>使用Array构造函数 var colors = new Array(); var colors = new Array(20); var colors = new Array("red","blue","green"); var colors = Array(3); var