本文地址: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. IDEA设置头注释—自定义author和date

    IDEA设置头注释,自定义author和date的方法如下所示: 去掉波浪线的方式:鼠标选中单词 --> 点击鼠标右键 --> spelling --> save 'xxx' to ...

  2. linux 下svn忽略文件

    假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录),如果报错请看下面 3. 打开的文件就是忽 ...

  3. 【.Net】win10 uwp unix timestamp 时间戳 转 DateTime

    有时候需要把网络的 unix timestamp 转为 C# 的 DateTime ,在 UWP 可以如何转换? 转换函数可以使用下面的代码 private static DateTime UnixT ...

  4. tarjan强连通分量模板(pascal)

    友好城市 [问题描述]小 w 生活在美丽的 Z 国. Z 国是一个有 n 个城市的大国, 城市之间有 m 条单向公路(连接城市 i. j 的公路只能从 i 连到 j). 城市 i. j 是友好城市当且 ...

  5. 【bzoj2351】[BeiJing2011]Matrix 二维Hash

    题目描述 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过.所谓01矩阵,就是矩阵中所有元素不是0就是1. 输入 输入文件的第一行为M.N.A.B,参见 ...

  6. VS中碰到的问题

    1.调试的时候,语句已经注释掉了,但是在执行的时候还是运行了(或者某些变量值改变后,程序依然用的之前数据). 右键解决方案-->清理,然后重新生成.

  7. 转:评估指标MAP

    转:http://www.zhenv5.com/?p=1079 MAP可以由它的三个部分来理解:P,AP,MAP 先说P(Precision)精度,正确率.在信息检索领域用的比较多,和正确率一块出现的 ...

  8. 【BZOJ4198】【NOI2015】荷马史诗(贪心,Huffman树)

    [BZOJ4198][NOI2015]荷马史诗(贪心,Huffman树) 题面 BZOJ 洛谷 题解 合并果子都是不知道多久以前做过的了.现在才知道原来本质就是一棵哈夫曼树啊. 这题我们仔细研究一下题 ...

  9. 【BZOJ1065】【NOI2008】奥运物流(动态规划)

    [BZOJ1065][NOI2008]奥运物流(动态规划) 题面 BZOJ 洛谷 题解 先不考虑环的情况,于是变成了一棵树. 这样子我们答案的贡献是\(\sum_{i=1}^nC_i\times k^ ...

  10. Linux集群--指定各个机器名字

    centOS7设置主机名:命令hostname可以查看当前主机名 虚招(临时的):重启机器后失效: hostname  XXX 实招(永久的): 招式一: 将/etc/sysconfig/networ ...