本文地址: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. (双人项目)四则运算 组员:杨钰宁 闫浩楠 开发语言:Python。

    需求分析:1.适用人群:小学生. 2.能进行“+,—,*,/” 的四则运算.难度可以随时修改. 3.提交试卷后可以显示所得分数并显示错题个数. 4.可以显示答对的题及其打错的题的序号. 代码如下: i ...

  2. python接口自动化测试框架实现之字符串插入变量(字符串参数化)

    问题: 在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=” 接口中很多入参值需要进行参数化. 解决方案: 1.Python并没有对在字符串中 ...

  3. java 基础 --Collection(Map)

    Map是不是集合?哈哈哈 java编程思想>的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst.Set.Queue和Map.这些对象类型也称为集合类,但由于Java类库 ...

  4. HDU1232——畅通工程

    #include<stdio.h> ]; int find(int x) //查找根节点 { int r=x; while (pre[r]!=r) //返回根节点 r r=pre[r]; ...

  5. P4622 [COCI2012-2013#6] JEDAN

    题目背景 COCI 题目描述 有N个数排成一行(数值代表高度),最初所有的数都为零,你可以选择连续的一段等高的数,将它们都增加1(除了开头和结尾那个数)如下图表示了两次操作: 现在有一些数字看不清了, ...

  6. oracle job定时执行存储过程

     JOB定时跑插入语句1.建插入数据的存储过程create or replace procedure report_web asV_START_DATE DATE;V_END_DATE  DATE;b ...

  7. 【BZOJ4011】【HNOI2015】落忆枫音(动态规划)

    [BZOJ4011][HNOI2015]落忆枫音(动态规划) 题面 BZOJ 洛谷 Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜 ...

  8. 洛谷 P1171 售货员的难题 【状压dp】

    题目描述 某乡有n个村庄(1<n<20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0<s<1000)是已知的,且A村到B村与B村到A村的路大多不同.为了提高效率 ...

  9. CentOS6.5上给curl安装ssl时错误解决

    1 在CentOS上使用PHP的curl访问HTTPS页面时,出现错误“Protocol https not supported or disabled in libcurl”. 表示curl未启用h ...

  10. Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接

    作业一:1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt2) 将用户信息数据库文件和用户 ...