Js中创建数组有两种方式:
一、使用Array构造函数:
①、var arr = new Array();// 创建一个空数组
②、var arr = new Array(20);// 创建一个长度为20的数组,每一项的值为undefind
③、var arr new Array("lili","daming");// 创建一个包含两个字符串的数组
二、使用数组字面量表示法:
①、var arr = [];//创建一个空数组
②、var arr = [20];//创建一个只包含一项的数组,长度为1
③、var arr2 = [“lili","daming"]//创建一个包含两个字符串的数组
数组的属性:
1. length 属性:arr.length 数组的长度
数组的方法:
1、Array.isArray():用于确定传入的值是否是一个数组。Array.isArray(arr);
2、join() :将数组的每项连在一起组成一个字符串。只接受一个参数,即分隔符,默认为逗号分隔符。arr.join('-');==>lili-daming
3、push() :可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。arr.push('wangfang','xiaoming');
pop() :从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。arr.pop();
5、shift() :删除数组的第一项,并返回删除的项,该方法更改数组的长度。如果数组为空,则返回undefined。arr.shift();
unshift() :将参数添加到数组的开头,并返回数组的长度arr2.unshift('lala')==>3
小结:shift()和pop()方法正好对应,一个操作数组的开头,一个操作数组的结尾。
6、sort() :升序排列数组项,该方法会将每项值转换为字符串(调用toString()方法)进行比较再进行排序。
例子:
①、var arr3 =[“10","9","8","15"]; arr3.sort() ==>8,9,10,15
②、var arr3 =[10,9,8,15]; arr3.sort() ==>10,15,8,9
为了解决数值的排序问题:sort()方法可以接收一个比较函数作为参数。
//升序函数
function compare(value1,value2){
if(value1
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
//降序函数
function compare(value1,value2){
if(value1
return 1;
}else if(value1>value2){
return -1;
}else{
return 0;
}
}
var arr3 =[10,9,8,15]; arr3.sort() ==>8,9,10,15
7、reverse():反转数组项的顺序。arr.reverse()
8、concat() :用于合并两个或多个数组,此方法不会更改现有数组,而是创建了一个新数组。 arr1.concat(arr2); arr1.concat(arr2,arr3);
9、slice():返回原数组中 指定开始下标到结束下标的项组成新数组(前闭后开原则,不包括结束位置的项),并返回。
var str =[1,3,5,6,7,8,9];
alert(str.slice(1)); ==> 3,5,6,7,8,9
alert(str.slice(1,2)); ==> 3
10、splice():它有多种用法,可实现删除、插入和替换
删除:只需指定两个参数,要删除的第一项的位置和要删除的项数,并返回删除的数组。如果没有删除任何项,则返回一个空数组。
str2.splice(1,2) ==》3,5
str.splice(0) ==》1,3,5,6,7,8,9
str.splice(1) ==》3,5,6,7,8,9
插入:可以向指定位置插入任意数量的项,只需提供3个参数
11、indexOf():接受两个参数,要查找的项和(可选)表示查找起点位置的索引。从数组开头向后查找。
lastIndexOf():接受两个参数,要查找的项和(可选)表示查找起点位置的索引。从数组末尾向前查找。
返回要查找的项在数组中的位置,如果没找到的情况下返回-1.
12、forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个函数没有返回值,参数为:数组的内容,对应数组索引,数组本身。
str.forEach(function(item,index,str){
alert(index+'-'+item)
});
13、map() :指‘映射’,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。str.map(function(item){...})
14、filter() :过滤功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
15、every():判断数组中每一项是否满足条件,只有所有项都满足条件,才会返回true.
str.every(function(item){
return item
}); ==>true
16、some(): 判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
17、toString():返回一个字符串
18、Array.of(str):将字符串转换成数组
19、fill():用一个固定值填充一个数组从起始索引到终止索引内的全部元素。
20、find():返回数组中满足提供的测试函数的第一个元素的值。
领取专属 10元无门槛券
私享最新 技术干货