1.检测数据类型
第一种方法:instanceof Array
第二种方法:Array.isArray()
<script>
var arr = ['scr', 1, null, , true];
// 直接输出一个数组
console.log(arr);
// 输出数组的长度
console.log(arr.length);
// 第一种检测数据类型的方法
console.log(arr instanceof Array);
// 第二种检测数据类型的方法
console.log(Array.isArray(arr));
</script>
2.输出数据
<script>
var arr = ['scr', 1, null, , true];
// 顺序输出
for(i=0;i<arr.length;i++){
console.log('第' + (i + 1) + '个值为:' + arr[i]);
}
//倒序输出
for(i=arr.length-1;i>=0;i--){
console.log('第' + (i + 1) + '个值为:' + arr[i]);
}
// 调序输出
for(i=1;i<=arr.length;i+=2){
console.log('第' + i + '个值为:' + arr[i]);
}
</script>
顺序输出:
倒序输出:
跳序输出:
3.for...in遍历数组
<script>
var arr = ['scr', 1, null, , true];
for (var j in arr) {
console.log('第' + j + '个值为:' + arr[j]);
}
</script>
for...in...遍历虽然在写法上比传统的循环方便,但在循环中如果该数组中某个值为empty时,在输出的时候会直接跳过去,只遍历当前已有的值
4.获取数组字符串
valueOf()方法:返回数组的元素字符串
toString()方法:可以把数组转化为字符串,并返回结果
toloLocaleString():返回数组中每个元素本地化表示形式
join(seperator):返回一个字符串,由每个元素转换而成的字符串使用指定的seperator拼接而成
<script>
var arr1 = ['scr', 1, null, , true];
console.log(arr1);
console.log(arr1.valueOf());
console.log(arr1.toString());
console.log(arr1.toLocaleString());
console.log(arr1.join('-'));
</script>
5.连接数组concat()
concat()拼接两个或更多的数组,并返回结果 语法:arrObject.concat(arr1,arr2,…); 该方法不会改变现有数组,仅仅返回一个拼接后的副本; 每个参数可以是一个值,也可以是一个数组 可以接收任意多个参数
<script>
var arr1 = [1, 2, 3];
var arr2 = ['a', 'b', 'c'];
var arr3 = arr1.concat(arr2);
// var arr3 = arr1.concat(100,arr2,200);
// var arr3 = arr1.concat(['m',200,0,[10,10]],arr2,100,'s');
// var arr3 = ['a','b'].concat(['m',200,0],arr2,100,'s');
// var arr3 = [].concat(['m',200,0],arr2,100,'s');
document.write(arr3);
document.write('<br />')
document.write(arr3.length);
</script>
6.获取子数组slice()
slice()返回现有数组的一个子数组
语法:arrObject.slice(start1,end);
参数start指定从哪个下标开始获取;若取值为负数,则表示从尾部开始算起,如-1指最后一个元素,-2指倒数第二个元素
参数end指定结束处的下标(不包含);
可以省略或取负值
<script>
var arr1 = [10,20,30,40,50];
// 从下标1开始截取至下标4,arr2=[20,30,40]
var arr2 = arr1.slice(1,4);
// 从下标2开始截取,直到末尾 arr3=[30,40,50]
var arr3 = arr1.slice(2);
// 从倒数第四个开始截取,截取至倒数第二个 arr4=[20,30]
var arr4 = arr1.slice(-4,-2);
console.log(arr2);
console.log(arr3);
console.log(arr4);
</script>
7.修改数组
splice从数组中删除一部分元素,并添加另一部分元素
语法:arrObject.splice(start,count,e1,e2..);
参数start: 指定添加/删除的起始位置,可取负值
参数count: 要删除的元素个数,0表示不删除 e1,e2.. 在start处新添加的项
返回被删除的项目;现有数组内容会改变
<script>
// splice()能增 能减 能替换
var arr3=[2,5,18,'e','p','dd',100,500,200]
// 替换 截取几个值替换几个值
arr5 = arr3.splice(2,2,'p1','p2');
console.log(arr5);
console.log(arr3); // [1, 2, "p1", "p2", "a", "b", "c", 200]
console.log(arr3.length); //length = 8
// 增加 添加的值的数量大于被截取的值
arr6 = arr3.splice(2,2,'li','bb',500);
console.log(arr3.length); //length = 9
console.log(arr3); // [1, 2, "li", "bb", 500, "a", "b", "c", 200]
// 减少 添加的值的数量少于被截取的值
arr7=arr3.splice(3,3,'aa');
console.log(arr3.length); // length = 7
console.log(arr3); //[1, 2, "li", "aa", "b", "c", 200]
</script>
8.数据的翻转reverse()
reverse() 颠倒数组中元素的顺序
语法:arrObject.reverse()
现有数组内容会改变
<script>
var arr3=[2,5,18,'e','p','dd',100,500,200]
arr8 = arr3.reverse();
console.log(arr8);
</script>
9.数组排序
sort() 用于对数组中元素由小到大进行排序
语法:arrObject.sort(sortby);
若未指定参数,则按元素的Unicode码排序;
也可以指定元素比较函数sortby,按其返回的正负值作排序的依据。
现有数组内容会改变
<script>
// 数组的快速排序
// 参数1-参数2 ,数组由小到大排列
function sortby(num1,num2){
return num1-num2;
}
// 参数2-参数1 ,数组由大到小排列
function sortby(num1,num2){
return num2-num1;
}
var num= [10,2,300,230,66];
console.log(num.sort(sortby));
</script>