数组 是一种特殊的变量,它能够一次存放一个以上的值。类似项目清单。
定义数组
//方法1
var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
//方法2
var myCars=new Array("Saab","Volvo","BMW");
//方法3
var myCars=["Saab","Volvo","BMW"];
数组方法
/*增加数据
push() 在结尾处向数组添加一个新的元素,返回新数组的长度
unshift() 在开头向数组添加新元素,返回新数组的长度
splice() 用于向数组添加新项,返回一个包含已删除项的数组
concat() 合并(连接)现有数组来创建一个新数组,返回新数组,而不会改变原来的数组
*/
var myCars=["Saab","Volvo","BMW"];
myCars.splice(0,1,"d","l")
// ['Saab']0: "Saab"length: 1[[Prototype]]: Array(0)
myCars
// ['d', 'l', 'Volvo', 'BMW']
/*删除数据
pop() 从数组中删除最后一个元素,返回被删除的值
shift() 删除首个数组元素,返回被删除的值
splice()同样可以用来删除数据,返回被删除的值的数组
*/
数组排序
/*
reverse() 反转数组中的元素,返回反转之后的数组
sort() 以字母顺序对数组进行排序,返回排序之后的数组
比值函数 function(a, b){return a - b}
*/
var arr = [1,20,3,45,2]
arr.sort()
// 输出[1, 2, 20, 3, 45],并非根据数值的大小排序
arr.sort(function(a, b){return a - b}) // [1, 2, 3, 20, 45]
数组迭代
//forEach 定义:对每个数组元素调用一次函数(回调函数)
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
console.log(txt);
function myFunction(value, index, array) {
txt = txt + value + "<br>";
}
// map() 定义:对每个数组元素执行函数来创建新数组,不会对没有值的元素执行函数,不会更改原始数组。
var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
console.log(numbers2);
function myFunction(value, index, array) {
return value * 2;
}
// filter() 定义:创建一个包含符合规则的数组元素的新数组
var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
console.log(over18);
function myFunction(value, index, array) {
return value > 18;
// find() 定义:返回通过测试函数的第一个数组元素的值。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
console.log(first);
function myFunction(value, index, array) {
return value > 18;
}
// findIndex() 定义:返回通过测试函数的第一个数组元素的索引。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
console.log(first);
function myFunction(value, index, array) {
return value > 18;
}