本文地址:http://www.cnblogs.com/veinyin/p/7607293.html 

一个数组中可以存储不同类型的值,可以混合存储数字、字符串、对象等

1 创建数组

1.1 构造函数

 var colors = new Array();       //自动长度

 var colors = new Array(20);     //长度为20

1.2 数组字面量

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

 var colors = [];        //空数组

2 检测数组

if(Array.isArray(value)) statement

3 转换方法

3.1 toString()

alert(colors.toString());

3.2 toLocaleString()

3.3 valueOf()

alert(colors.valueOf());

3.4 join()

alert(colors.join("||"));       //用 || 分隔各数组项

4 栈方法

4.1 插入数据

colors.push("value");

4.2 弹出数据

var value = colors.pop();

5 队列方法

5.1 正向操作,数组后端添加,前端取出

5.1.1  插入数据

colors.push("value");

5.1.2 取出数据

var value = colors.shift();

5.2 反向操作,数组前端添加,后端取出

5.2.1 插入数据

colors.unshift("value");

5.2.2 取出数据

var value = pop();

6 重排序

6.1 数组项逆序排列

nums.reverse();

6.2 数组项升序排列

nums.sort();

sort() 函数可以接受一个比较函数作为参数,以便指定哪个值位于哪个值前面

 var num = [0,1,5,10,15];
document.getElementById("index").innerHTML = num.sort().join("||");
num.sort(compare);
document.getElementById("index2").innerHTML = num.join("||");
};
function compare(num1,num2){
if(num1 > num2) {
return 1;
}
else if(num1 < num2){
return -1;
}
else{
return 0;
}
}

第一个结果是 sort() 排序,先比较第一个字符,再比较第二个字符

第二个结果是使用了参数的结果,完全升序,将 return 的正负 1 交换,则实现完全降序

7 concat()

将参数添加到数组末端,可接受一个或多个参数

num.concat(12,34,45,23);

8 slice()

8.1 一个参数

slice(num);
//返回下标为 num 到数组末尾的所有数据项

8.2 两个参数

slice(num1,num2);
//返回下标为 num1 到 num2-1 的所有数据项

9 splice()

9.1 删除

nums.splice(0,2);
//删除下标为 0 开始的两个数据项

9.2 插入

num.splice(2,0,"12","34","45","23");
//插入位置,删除项数,插入内容

插入数据为下标 2 处开始,删除项若不为0,删除原数组中开始项后的数据项

9.3 替换

nums.splice(2,1,"22");

其实就是插入的变形

10 位置方法

10.1 indexOf()

 nums.indexOf(3);
//在 nums 数组中从首端开始查询是否存在 3, 遇到第一个则返回其下标

10.2 lastIndexOf()

 nums.lastIndexOf(3);
//在 nums 数组中从末端开始查询是否存在 3, 遇到第一个则返回其下标

11 迭代方法

func 接收 3 个参数: 数组项的值,该项在数组中的位置,数组对象本身

11.1 nums.every(func);

所有数组项的 func 值均为 true 才返回 true, 否则返回 false

11.2 nums.some(func);

有一个数组项的函数值为 true 则返回 true

11.3 nums.filter(func);

返回函数值为 true 的项组成的数组

11.4 nums.map(func);

返回函数返回的结果组成的数组

11.5 nums.forEach(func);

数组每一项均运行函数,但无返回值

12 缩小方法

两个方法均接受两个参数: 调用函数、作为缩小基础的初始值

两个方法区别, reduce() 正序遍历, reduceRight() 逆序遍历

  • reduce(func);

  • reduceRight(func);

func 接收 4 个参数: 前一个值、当前值、项的索引、数组对象 测试似乎用到了前两个参数

 var sum = nums.reduce(function(prev,cur,index,array){
return prev + cur;
});

引用类型 ( 对象定义 )——Array 类型的更多相关文章

  1. 引用类型 ( 对象定义 )——Function 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607798.html  函数实际上是对象,也具有属性和方法,函数名实际上是指向函数对象的指针 function sum( ...

  2. 引用类型 ( 对象定义 )——Object 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607100.html  创建实例 new 操作符后跟构造函数 var people = new Object(); pe ...

  3. 引用类型 ( 对象定义 )——Date 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607743.html  1 创建日期对象 var date = new Date(); 2 可以给日期对象传值 2.1 ...

  4. 引用类型 ( 对象定义 )——RegExp 类型

    var expression = /pattern/flags; 以上为创建正则表达式格式,斜线包围的为正则表达式,flags 有三个值可以选择 本文地址:http://www.cnblogs.com ...

  5. 引用类型(二):Array类型

    一.js中的数组与其它语言中的数组的区别1.ECMAScript数组的每一项可以保存任何类型的数据2.ECMAScript数组的大小是可以动态调整的 二.创建数组的基本方式1.使用Array构造函数 ...

  6. JavaScript中判断对象是否属于Array类型的4种方法及其背后的原理与局限性

    前言 毫无疑问,Array.isArray是现如今JavaScript中判断对象是否属于Array类型的首选,但是我认为了解本文其余的方法及其背后的原理与局限性也是很有必要的,因为在JavaScrip ...

  7. Javascript高级编程学习笔记(13)—— 引用类型(2)Array类型

    除了Object类型之外ECMA中最常用的引用类型可能就是Array类型了 并且ECMA中的数组类型和其他大多数编程语言的数组类型存在着很大的区别 今天就介绍一下JS中的Array的特别之处 区别 1 ...

  8. Postgres 的 Array 类型

    mysql 不支持 Array 类型 一.Postgres 原生SQL 适用场景:可以用于实现贴标签功能 1.定义 CREATE TABLE "Students" ( name V ...

  9. JavaScript引用类型之Array类型一

    一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...

随机推荐

  1. TCP系列49—拥塞控制—12、DSACK下的拥塞撤销

    一.概述 DSACK下的虚假重传的检测我们之前重传部分的文章已经介绍过了,这里简单说一下拥塞控制部分的实现. linux内部会维护一个undo_retrans状态变量,其值为已经重传的次数减掉被DSA ...

  2. 1st 本周工作量及进度统计

    1. 项目:英文文章词频统计 项目类型:个人项目 项目完成情况:已完成 项目日期:2016.9.6 C(类别) C(内容) S(开始时间) ST(结束时间) I(耽误时间) △(实际时间) 分析 需求 ...

  3. (转)关于ActiveMQ的配置

    目前常用的消息队列组建无非就是MSMQ和ActiveMQ,至于他们的异同,这里不想做过多的比较.简单来说,MSMQ内置于微软操作系统之中,在部署上包含一个隐性条件:Server需要是微软操作系统.(对 ...

  4. 虚拟机Centos设置静态IP

    首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapte ...

  5. 【转】Linux C 网络编程——TCP套接口编程

    地址:http://blog.csdn.net/matrix_laboratory/article/details/13669211 2. socket() <span style=" ...

  6. Redis 请求应答模式和往返延时 Pipelining

    Redis是一个CS结构的TCP服务器,使用”请求-应答”的模式.,客户端发起一个请求是这样的步骤: 客户端发送一个请求给服务器,然后等待服务器的响应,一般客户端使用阻塞模式来等待服务器响应. 服务器 ...

  7. css 层加透明度后文字依然清晰

    background: rgba(, , , !important; /*实现FF背景透明,文字不透明*/ filter: Alpha(opacity=); background: #0a0a0a; ...

  8. PL/SQL中复制粘贴表结构信息

    1.打开下图中的Tables文件夹 2.查找要找的表 3.右键单击找到的表—>Describe 4.复制所需的数据到EXCEL表中

  9. ubuntu成功安装搜狗输入法

    在安装之前,我们要先了解一个事实,那就是linux下安装软件和Windows是非常不同的,并不是简单地双击安装包就可以安装了.linux很多软件都有自己的一个依赖源,如果不先安装好这些依赖源,你是无法 ...

  10. Shortest Prefixes POJ - 2001(统计次数)

    题意: 输出每个单词的缩写  使得每个单词 互不相同.. 解析: 统计每个前出现的次数...然后在查询的时候  遇到次数为1的返回即可.. #include <iostream> #inc ...