引用类型-Array

数组

定义 : 数据的有序列表

如何定义一个数组

var arr = new Array(); // 定义空数组
var arr = new Array(3); //定义长度为3的一个数组
var arr = new Array("hello"); //定义长度为1值为"hello"的数组
//提示:构建数组时可以省略new操作符
var arr = []; //定义空数组
var arr = [1,2,3] //定义长度为3值为1,2,3的数组
var arr = [1,2,,] //在ie8之前认为创建了3项,ie8之后认为创建了两项(杜绝使用)
// 提示:千万不要多添加逗号

数组的length属性

//当访问的索引大于数组长度,数组自动增加索引长度 
var arr = [1,2]; 
arr[5] = 100; 
console.log(arr);//[1,2,undefined,undefined,undefined,100] 
//可以用length属性对已有数组初始化. 
var arr = [1,2]; 
arr.length = 0; 
console.log(arr);//[]

检测数组 : Array.isArray()方法
转换方法 : toString() valueOf() toLocaleString()

toString() valueOf() toLocaleString()都会将数组转为字符串且用逗号分隔.
jion()与toString()大致相同,只不过join()可以自定义分隔符(默认还是逗号分隔)

栈方法 : push() pop()

栈是先入后出的数据结构,所有操作在栈顶操作
push()入栈
pop()出栈

队列方法 : push() shift() 或 unshift() pop()

队列是先入先出的数据结构,可以从正方向,反方向模拟队列
正方向:
push()进队列
shift()出队列
反方向:
unshift()进队列
pop()出队列

重排序方法 : reverse() sort()

reverse()方法只是简单的数组颠倒
sort()方法,按照字典顺序对元素进行排序的,因此它假定元素都是字符串类型.
要想sort() 方法也能排序数字类型的元素,可以在调用方法时传入一个大小比较函数,排序时, sort() 方法将会根据该函数比较数组中两个元素的大小,从而决定整个数组的顺序。

function compare(num1, num2) {
    return num1 - num2;
}
var nums = [3,1,2,100,4,200];
nums.sort(compare);
print(nums); //[1, 2, 3, 4, 100, 200]

操作数组 : concat() slice() splice()

concat()合并多个数组,不改变原数组(将方法中的数组添加到当前数组中)
slice()截取一个数组子集,不改变原数组(两个参数,第一个参数代表索引,第二个参数代表截取的长度)
splice()删除,插入,替换数组,且改变原数组(多个参数,第一个参数代表索引,第二个代表截取长度,剩余的替换/添加的值)

var arr1 = [1,2,3];
var arr2 = [4,5];
var arr = arr1.concat(arr2);
console.log(arr);//[1, 2, 3, 4, 5]
var arr3 = arr.slice(0,3);
console.log(arr3);//[1, 2, 3]
console.log(arr);//[1, 2, 3, 4, 5]
var arr4 = arr.splice(0,3,100,200,300)
console.log(arr);//[100, 200, 300, 4, 5]

位置方法 : indexOf() lastIndexOf()

都有两个参数 : 第一个参数代表要查找的起点索引,第二个参数代表要查找的值
默认情况下第一个参数可以省略,且indexOf()默认从数组开头查找,lastIndexOf()默认从数组末尾开始查找.

var arr = [1,2,3,4,5];
arr.indexOf(5);//4

迭代方法

每个方法接收两个参数 : 函数(数组中每一项都执行一次) 和 运行该函数作用域对象(一般省略)

  1. forEach() 只是运行函数,无返回值
  2. some() 运行函数,如果函数对数组中有一项或多项是true返回true
  3. every() 运行函数,如果函数对数组中每项运行结果都是true返回true
  4. filter() 运行函数,返回值为true的值组成的数组
  5. map() 运行函数,返回运行结果组成的新数组(copy数组常用)
function copy(arr){
    return 2*arr;
}
var arr = [1,2,3];
var newArr = arr.map(copy);
console.log(newArr);//[2, 4, 6]

归并方法 : reduce() reduceRight()

这两个方法会迭代数组的所有项,并返回最终值(reduce()从左遍历,reduceRight()从右遍历)
4个参数 : 前一个值 , 当前值 , 项的索引 , 数组对象

function add(prev,cur,index,array){
    return prev+cur;
}
var arr = [1,1,1];
var sum = arr.reduce(add);
console.log(sum);//3

参考书籍 : javascript高级程序设计5.2章节
根据w3c自己过一遍基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值