文章目录
- push()
- pop()
- unshift()
- shift()
- forEach()
- slice()
- splice()
- contact()
- join()
- reverse()
- sort()
创建数组
- 常规方式
var myCars=new Array();
myCars[0]=“Saab”;
myCars[1]=“Volvo”;
myCars[2]=“BMW”;
- 间接方式
var myCars=new Array(“Saab”,“Volvo”,“BMW”);
- 字面方式
var myCars=[“Saab”,“Volvo”,“BMW”];
- 不存在的索引,返回"undefined"。
常见属性
使用length获取长度。
arr.length
技巧,利用在数组末尾添加一个新元素。
arr[arr.length] = 100;
数组元素可以存储任何数据。
arr[arr.length] = obj;
var arr = [function(){}, function(){}];
arr0;
二维数组
var arr = [[1,2],[3,4]];
常见方法
push()
push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。
var arr=[“孙悟空”,“猪八戒”,“沙和尚”];
var newLength = arr.push(“唐僧”,“蜘蛛精”,“玉兔精”);
pop()
用于删除数组的最后一个元素并返回删除的元素。
var x = arr.pop(); // 删除最后一个元素并返回该元素
unshift()
可向数组的开头添加一个或更多元素,并返回新的长度。
arr.unshift(“张学友”,“周润发”) ; // 在数组开头添加张学友和周润发
shift()
用于把数组的第一个元素从其中删除,并返回第一个元素的值。
var y= arr.shift(); // 删除数组第一个元素并返回该元素
forEach()
forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。
- 一般使用for循环去遍历数组。
for(var i=0; i<arr.length; i++){}
- forEach()把函数作为参数。
arr.forEach(function(value, index, obj){console.log(value);});
slice()
slice()方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
slice()方法不会改变原始数组。
var result = arr.slice(0,-2);
splice()
splice()方法用于添加或删除数组中的元素。
splice()方法会改变原始数组。
如果从arrayObject中删除了元素,则返回的是含有被删除的元素的数组。
splice()方法也可以实现插入/替换元素功能。
arr = [“Allen”,“Answer”,“Jordan”]
var = result = arr.splice(1,2,“Tom”,“Tim”) // 第2、3个元素被删除替换成了"Tom"和"Tim"。
contact()
concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
array1.concact(array2,array3,…,arrayX);
join()
join()方法用于把数组中的所有元素转换一个字符串。
arr = [“Tom”,“Tim”];
result = arr.join(",");
// “Tom,Tim”
reverse()
reverse()方法用于颠倒数组中元素的顺序。
arr.reverse();
sort()
sort()方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。
对于纯数字数组,也会按照Unicode编码来排序。因此在sort中添加一个回调函数。
回调函数中要定义两个形参,浏览器会分别使用数组中的元素作为实参去调用回调函数。
a一定在b前,浏览器根据回调函数的返回值决定元素的顺序。
- 如果返回一个大于0的值,则元素交换位置;
- 如果返回一个小于等于0的值,则元素位置不变。
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b}); // 数字排序(数字和升序)
//fruits输出结果:1,5,10,25,40,100
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a}); // 数字排序(数字和降序)
//fruits输出结果:100,40,25,10,5,1