JavaScript数组学习

摘自《JS高级程序设计》(第三版)第五章

创建数组

  • 方法一
var colors = new array(10);
var colors = Array(10);//new 可省略
var colors = Array("red","blue");
  • 方法二
var colors = [];
var colors = ["red","blue"];

使用数组

alert(colors[0]);
colors[5] = "black";//数组长度被扩充到了6个,其他项为undefined
colors.length = 1;//length属性值可变,数组只剩下“red”一个元素
colors[colors.length] = "green";//在末尾添加新项 等于push
colors.toString();//返回数组元素拼接的字符串
colors.toLocaleString();//调用了数组中每一项的toLocaleString()方法
colors.valueOf();//返回原数组

数组排序

//sort按升序排列数组,可以接收一个方法作为参数,便于指定哪个值在哪个值前面
function compare_str(value1,value2){
	if(...){
		return -1;
	}else if(...){
		return 1;
	}else return 0;
}
function compare_num(value1,value2){
	return value2 - value1;
}
colors.sort(compare_str);

检测数组

if (Array.isArray(colors)){}
if (colors instanceof Array){}//不适用多个全局环境(?)

栈方法与队列方法

方法 作用 返回值
push() 添加元素到数组末尾 修改后的数组长度
unshift() 添加元素到数组开头 修改后的数组长度
pop() 从数组末尾移除最后一项 移除的项
shift() 从数组开头移除第一个项 移除的项

操作方法

方法 作用
concat() 基于数组当前项与其他项合并成一个新数组
slice() 基于当前数组某些项创建新数组
splice() 向数组中部插入项
indexOf()、lastIndexOf() 返回元素位置

迭代方法

以下迭代方法作用都是对数组中的每一项运行给定函数,但不会修改数组值。根据给定函数的返回值,确定方法的返回值。

方法 返回值
every() 如果每一项都返回true,则返回true
some() 如果任一项都返回true,则返回true
filter() 有哪些项返回true,就返回由这些项组成的数组
forEach() 无返回值
map() 每一项都会返回一个结果,返回这些结果组成的数组

归并方法

function函数任何返回值都会作为第一个参数传给下一项

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
	return prev + cur;
})//sum = 1+2+3+4+5
发布了24 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Protocols7/article/details/103830769