JavaScript基础学习笔记(五)——Array类型
2016-10-10 16:10
886 查看
数组的每一项可以保存任何类型的数据,例如第一个位置保存字符串,第二个位置保存数值,第三个位置保存对象……
pop()方法可以从数组末尾移除最后一项,并返回该项;
shift()方法可以从数组开头移除第一项,并返回该项;
sort()方法会升序排列数据项,默认当做字符串按照ASCII排列而不是数值;
想让sort()方法按照数值顺序升、降序排列,需要自写比较函数:
slice()方法可以基于当前数组中的一个或多个项创建一个新数组,可接受一至两个参数,即要返回的起始和结束位置,新数组包括起始位置但不包括结束位置;
splice()方法主要用途是向数组的中部插入项,可以实现删除、插入、替换三种操作,返回删除项。三个参数分别为:起始位置、删除长度、替换项(可选);
4000
lastIndexOf()方法从数组的末尾向前查找。
两者都返回查找项在数组中的位置,或者在没找到的情况下返回-1。
作用都是对数组中的每一项运行给定函数,返回值相互不同:
every()方法:如果该函数对每一项都返回true,则返回true;
some()方法:如果该函数对任意一项返回true,则返回true;
filter()方法:返回该函数会返回true的项组成的数组;
forEach()方法:没有返回值;
map()方法:返回每次函数调用的结果组成的数组;
两个方法都接收两个参数:一个在每一项上调用的函数和作为归并基础的初始值(可选)。
调用的函数接收四个参数:前一个值、当前值、项的索引、数组对象。
可用于数组求和操作:
概念
Array类型创建方式
var colors = new Array(); var colors = ["red", "blue", "green"];
length属性
数组的项数保存在length中,始终会返回0或更大的值,可用于从数组末尾移除项或添加新项。var colors = ["red", "blue", "green"]; colors.length = 2; //删除第三项 alert(colors[2]); //undefined colors[colors.length] = "green"; //添加第三项 alert(colors[2]); //"green"
转换方法(toString, valuesOf)
var colors = ["red", "blue", "green"]; alert(colors.toString()); //red,blue,green alert(colors.valuesOf()); //red,blue,green alert(colors); //red,blue,green
栈方法(push, pop)
push()方法可以将参数逐个添加到数组末尾,返回修改后的长度;pop()方法可以从数组末尾移除最后一项,并返回该项;
var colors = new Array(); var count = colors.push("red","green"); //2 var items = colors.pop(); //"green"
队列方法(unshift, shift)
unshift()方法可以将参数逐个添加到数组开头,返回修改后的长度;shift()方法可以从数组开头移除第一项,并返回该项;
var colors = new Array(); var count = colors.unshift("red","green"); //2 var items = colors.shift(); //"red"
重排序方法(reverse, sort)
reverse()方法会反转数组的顺序;sort()方法会升序排列数据项,默认当做字符串按照ASCII排列而不是数值;
想让sort()方法按照数值顺序升、降序排列,需要自写比较函数:
var values = [0, 15, 123, 20, -1]; values.sort(); //[-1, 0, 123, 15, 20] values.sort(function(a, b){return a - b;}); //[-1, 0, 15, 20, 123] values.sort(function(a, b){return b - a;}); //[123, 20, 15, 0, -1]
操作方法(concat, slice, splice)
concat()方法可以基于当前数组中的所有项创建一个新数组;var colors = ["red", "green", "blue"]; var colors2 = colors.concat("yellow", ["black", "brown"]); //["red", "green", "blue", "yellow", "black", "brown"]
slice()方法可以基于当前数组中的一个或多个项创建一个新数组,可接受一至两个参数,即要返回的起始和结束位置,新数组包括起始位置但不包括结束位置;
var colors = ["red", "green", "blue"]; var colors2 = colors.slice(1); //["green", "blue"] var colors3 = colors.slice(0, 2); //["red", "green"]
splice()方法主要用途是向数组的中部插入项,可以实现删除、插入、替换三种操作,返回删除项。三个参数分别为:起始位置、删除长度、替换项(可选);
var colors = ["red", "green", "blue"]; var removed = colors.splice(0, 1); //删除第一项 ["green", "blue"] removed = colors.splice(1, 0, "yellow", "orange"); //从位置1开始插入两项 ["green", "red", "yellow", "orange", "blue"] removed = colors.splice(1, 1, "white", "purple"); //插入两项删除一项 ["green", "white", "purple", "yellow", "orange", "blue"]
位置方法(indexOf, lastIndexOf)
两个方法都接收两个参数:要查找的项和表示查找起点位置的索引(可选),其中indexOf()方法从数组的开头向后查找,4000
lastIndexOf()方法从数组的末尾向前查找。
两者都返回查找项在数组中的位置,或者在没找到的情况下返回-1。
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; numbers.indexOf(4); //3 numbers.lastIndexOf(4); //5 numbers.indexOf(4, 4); //5 numbers.lastIndexOf(4, 4); //3
迭代方法(every, filter, forEach, map, some)
该类方法都接收三个参数:数组项的值、该项在数组中的位置、数组对象本身。作用都是对数组中的每一项运行给定函数,返回值相互不同:
every()方法:如果该函数对每一项都返回true,则返回true;
some()方法:如果该函数对任意一项返回true,则返回true;
filter()方法:返回该函数会返回true的项组成的数组;
forEach()方法:没有返回值;
map()方法:返回每次函数调用的结果组成的数组;
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; numbers.forEach(function(item, index, array) { //执行操作 });
归并方法(reduce, reduceRight)
两个方法都会迭代数组的所有项,然后构建一个最终返回的值,前者从前往后遍历,后者从后往前。两个方法都接收两个参数:一个在每一项上调用的函数和作为归并基础的初始值(可选)。
调用的函数接收四个参数:前一个值、当前值、项的索引、数组对象。
可用于数组求和操作:
var values = [1, 2, 3, 4, 5]; var sum = values.reduce(function(prev, cur, index, array) { return prev+cur; }); //15
相关文章推荐
- JAVASCRIPT学习笔记--ECMAScript基础(1)
- JavaScript高级程序设计学习笔记1: 基础
- JAVASCRIPT学习笔记基础(一)
- JavaScript学习笔记(1)基础知识
- JavaScript高级程序设计(第3版)学习笔记2 js基础语法
- javascript学习笔记 (一)-函数基础
- JavaScript基础学习笔记(二)——JavaScript 注释、JavaScript 变量、JavaScript运算符
- JAVASCRIPT学习笔记基础(二)
- javascript之对象学习笔记(一)--对象基础知识
- “黑马程序员”视频学习笔记之javascript基础
- JavaScript基础学习笔记(2009.12.01)
- javascript 学习笔记 基础篇(2) HTML DOM
- 核心JavaScript基础-2(学习笔记)
- JAVASCRIPT学习笔记基础(三)
- javascript高级程序设计学习笔记--第三章对象基础
- JavaScript高级程序设计学习笔记1: 基础
- javascript学习笔记-语法基础
- JavaScript+jQuery从小工到专家学习笔记(javascript基础)
- 学习笔记——Javascript基础
- JAVASCRIPT学习笔记基础(四)