Array
创建数组的方法基本上有两种
1、使用Array构造函数
var arr=new Array();
var arr1=new Array(10);//创造了一个length为10的数组
var arr2=new Array("a","b","c");//创造了一个长度为3的,内容为a,b,c三个字符串的数组
2、使用字面量表示法
var arr3=["a","b","c"]; //内容等同于arr2
var arr4=[, , ,]//创建了长度为3或4的数组内容为空
我们可以通过索引值访问到数组中的值
var arr=["a","b","c","d"];
alert(arr[0]) //a
索引永远是从0开始的,也就是数组的是0,1,2,3,4,5…..以此类推,索引0是第1个值
数组的方法
所有对象都具有toLocaleString()、toString()、valueOf()方法。数组的toString方法会返回每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而valueOf()方法调用的时候会先使用一边toString()方法
var arr=["apple","banana","cat","dog"];
console.log(arr.toString());//apple,banana,cat,dog
console.log(arr.valueOf());//apple,banana,cat,dog
console.log(arr.toLocaleString());//apple,banana,cat,dog
数组的join()方法
这个方法是使数组分割成字符串的时候,以选定的分隔符分割
var arr=["apple","banana","cat","dog"];
console.log(arr.join("||"));//apple||banana||cat||dog
console.log(arr.join("\t xss"));//apple xssbanana xsscat xssdog
数组的push和pop方法(模拟栈)
push()方法可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。而pop()方法则从末尾移除最后一项,减少数组的length值
var arr=new Array();
var count=arr.push("apple","banana");
alert(arr.length);//2
console.log(count);//2
arr.push("cat");
console.log(arr.length)//3
var i=arr.pop();
console.log(i);//cat
数组的shift()方法(模拟队列先进先出)
var arr=new Array()
arr.push("apple","blue");
var item=arr.shift();
console.log(item);//apple
数组的unshift()方法,下面的例子模仿向前添加项,从后的删除项
var arr=new Array()
arr.unshift("apple","blue","cat");
arr.unshift("dog");
var item=arr.pop();
console.log(item);
数组反转方法 reverse()方法
var arr=[1,2,3,4,5];
console.log(arr.reverse());//5,4,3,2,1;
数组排序方法 sort()方法
*该方法默认情况下,按照toString()转型方法后得到的字符串排序也就是说
var arr=[0,1,5,10,15];
arr.sort();
console.log(arr)//0,1,10,15,5;
*但是呢 sort()方法可以接收一个函数作为参数
//比较函数(从小到大)
function compare(a,b){
if (a>b) {
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}
}
数组的concat()方法
此方法不改变原始数组的值,而是返回一个修改后的值
如下
var arr1=["apple","boy","cat"];
var arr2=arr1.concat("dog",["egg","flag"]);
console.log(arr1);//apple boy cat
console.log(arr2);//apple boy cat dog egg flag
数组的slice()方法
该方法可以接收两个参数,只有一个参数的话返回从该索引到最后一个所有的所有值
两个参数的话返回该所以到第二个参数的位置的值
例:
var arr=["apple","boy","cat","dog","egg"];
var arr1=arr.slice(2);
console.log(arr1);//cat dog egg
var arr2=arr.slice(1,3);
console.log(arr2);//boy cat
*数组的splice()方法
该方法有删除,插入,替换三种功能
var arr=["apple","boy","cat","dog"];
//删除
var remove =arr.splice(0,1);
console.log(remove);/apple
console.log(arr);boy cat dog
//插入
var remove2=arr.splice(3,0,"egg")
console.log(arr)//boy cat dog egg;
//替换
var remove3=arr.splice(3,1,"exp");
console.log(arr)//boy cat dog exp;
indexOf() 方法 和lastIndexOf()方法
这个两个方法都是数组的位置方法,第一个是从索引0向后查找,第二个是从后往索引0的位置开始查找;一旦查找到第一个则返回这个参数在数组中的位置的索引值,若数组中没有该值则返回-1;
var arr=new Array();
arr=["apple","boy","cat","cat","dog","apple","boy","cat","dog"];
console.log(arr.indexOf("cat"));//2
console.log(arr.lastIndexOf("cat"));// 7
console.log(arr.indexOf("egg");//-1