数组创建的方法
使用new+array构造函数创建数组(new也可以省略)
var aa = new Array('blue', 'pink', 'yellow', 'red');
var bb = Array('blue', 'pink', 'yellow', 'red');
字面量方法创建数组
var arr=['blue', 'pink', 'yellow', 'red'];//最常用
检测是否是数组的两种方法
console.log(arr instanceof Array);
console.log(Array.isArray(arr));
var cc = Array(23);//当放一个参数代表数组的长度
console.log(cc.length);//长度是23
var cc = Array('23');//当放一个字符串代表数组数组的内容
console.log(cc.length);//长度是1
设置数组的长度
var aa = new Array('blue', 'pink', 'yellow', 'red');
aa.length = 10;//把数组的长度设置为10;
console.log(aa);// ["blue", "pink", "yellow", "red", empty × 6]
也可以删除,替换或添加某一项
删除
aa.length=2;//数组的长度设置为2;删除后两项
console.log(aa)// ["blue", "pink"]
添加
aa[aa.length - 1] = 'cc';//最后一项添加
console.log(aa);
替换
aa[3]='222';//下标3位置换成222
console.log(aa);
转字符串的方法
toLocaleString()、toString和valueof()方法。
这个方法所有对象都可以用
·toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串;
console.log(arr.toString());
·valueOf()返回的还是数组;
console.log(arr.valueOf());
·toLocaleString()方法也经常返回与toString和valueof()方法相同的值,
console.log(arr.toLocaleString());
但也不总是这样
· join()方法 数组转字符串 会改变原数组
join()方法使用不同的分隔符来构建字符串。只接受一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
console.log(colors.join()) //不加参数默认以","分隔 ==colors.join(",")
console.log(colors.join("")) //redbluegreen
console.log(colors.join("||")) //red||blue||green
栈方法
·push()方法:接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red','blue', 'pink');
console.log(arr.push('111'))//返回改变后的数组长度 7
console.log(arr);// ["blue", "pink", "yellow", "red", "blue", "pink", "111"]
·pop()方法:从数组的末尾移除最后一项,减少数组的length值,然后返回被移除的项。会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red');
console.log(arr.pop())//red返回被移除的内容
console.log(arr);//["blue", "pink", "yellow"]
队列方法
·unshift()方法:在数组的前端添加任意个项并返回新数组的长度。会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red','blue', 'pink');
console.log(arr.unshift('blue'))//7 返回改变后的数组的长度
console.log(arr);// ["blue", "blue", "pink", "yellow", "red", "blue", "pink"]
·shift()方法:从数组的前端移除第一项(也就是位置索引值为0),减少数组的length值,然后返回被移除的项。会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red','blue', 'pink');
console.log(arr.shift())//删除第一项 返回被删除的项
console.log(arr);//["pink", "yellow", "red", "blue", "pink"]
重排序方法
·reverse()方法:反转数组项的顺序。会改变原数组
例:
var arr = [1,2,3,4,5];
arr.reverse();
console.log(arr); //5,4,3,2,
·sort()方法:排序
sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,来确定顺序。
例:
var arr = [0,1,5,10,15];
arr.sort(function(a,b){
return a-b; //升序
return b-a; //降序
});
操作方法
·concat()方法可以基于当前数组创建一个新数组。不会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red','blue', 'pink');
var brr=arr.concat('1111');
console.log(brr);["blue", "pink", "yellow", "red", "blue", "pink", "1111"]
· slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。不会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red');
console.log(arr.slice(1));//从下标1开始截取["pink", "yellow", "red"]
console.log(arr.slice(1, 3));//从下标1开始到下标3结束["pink", "yellow"]
·splice()主要用途是向数组的中部插入元素,使用方式有3种。会改变原数组
console.log(arr.splice(1,3));//从下标1开始截取3个
console.log(arr.splice(1, 2, 7, 6));//从下标1开始截取3个,替换成7,6
console.log(arr);//改变原数组
位置方法
首次出现位置
·indexOf():返回某个指定的字符串值或者某个数组元素值在字符串或者数组中首次出现的位 ,不会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red');
console.log(arr.indexOf('blue'))//0
console.log(arr);// ["blue", "pink", "yellow", "red"]
·lastIndexOf():返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索 ,不会改变原数组
var arr = new Array('blue', 'pink', 'yellow', 'red','blue', 'pink');
console.log(arr.lastIndexOf('blue'))//4
console.log(arr.lastIndexOf('blue',4))//从下标4开始找 返回4
console.log(arr);// ["blue", "pink", "yellow", "red" ,"blue", "pink"]
网友评论