文章目录

 ​

创建数组

  1. 常规方式


var myCars=new Array();
myCars[0]=“Saab”;
myCars[1]=“Volvo”;
myCars[2]=“BMW”;


  1. 间接方式


var myCars=new Array(“Saab”,“Volvo”,“BMW”);


  1. 字面方式


var myCars=[“Saab”,“Volvo”,“BMW”];


  • 不存在的索引,返回"undefined"。

常见属性

使用length获取长度。


arr.length


技巧,利用在数组末尾添加一个新元素。


arr[arr.length] = 100;


数组元素可以存储任何数据。


arr[arr.length] = obj;



var arr = [function(){}, function(){}];
arr​​0​​;


二维数组

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