一、数组的遍历
1.遍历:一次访问数组中的每个元素
for(var i=0;i<arr.length;i++>
console.log(arr[i]);//输出数组中的当前元素
}
2.索引数组和关联数组/hash数组
索引数组:下标为数字的数组
关联数组/hash数组:下标不为数字的数组
var zse=[];
zse['name']='张三';
zse['age']='18';
zse['sex']='boy';
console.log(zse);
关联数组没有length属性
关联数组不能用for遍历,要用for....in遍历
for(var key in hash){
//key代表关键字,即下标
//hash代表数组名
}
如:var wangzhesheng=[];
wangzhesheng['sex']='女';
wangzhesheng['age']='3岁';
wangzhesheng['height']='151cm';
console.log(wangzhesheng);
for(var sb in wangzhesheng){
console.log(wangzhesheng[sb]);
}
二、数组API:
1.Storing
将数组中每个元素都转为字符串,再用逗号分隔: var str=String(arr);
如:var arr=[2,45,4,65,684,8,34];
var str=String(arr);//转换字符串
console.log(str);
2.join
将数组中每个元素都转为字符串,再用自定义下标连接每个元素:
var str=arr.join("自定义连接符")
强调:如果省略参数,默认等效于String
如:var arr=[2,45,4,65,684,8,34];
var str=arr.join('-');
console.log(str);
3.concat
拼接
var arr=[2,45,4,65,684,8,34];
var arr2=['+','-','*','/'];
var str=arr.concat(arr2);
console.log(str)
注:join和concat的区别
join适用于把字母拼接为单词,把单词拼接为句子,拼出来的是字符串
concat是给数组后面拼接新元素,或把两个数组拼接,拼出的还是数组
4.slice
截取
如:var arr=[2,45,4,65,684,8,34];
var str=arr.slice(1,5);//含头不含尾
var str=arr.slice(1);//如果省略第二个参数默认从第一个参数开始截取到末尾
var str=arr.slice();//如果两个参数都省略相当于复制原字符串
var str=arr.slice(-4,-2);//支持负数参数,小数在前,大数在后
5.splice
删除插入替换
1).删除
var arr=[2,45,4,65,684,8,34];
var str=arr.splice(1,3);//表示从下标为1的位置处开始删除3个
console.log(str);
console.log(arr);
2).插入
var arr=[2,45,4,65,684,8,34];
var str=arr.splice(1,0,'ai','he');//从下标为1的位置处开始删除0个并插入新元素
console.log(str);
console.log(arr);
3).替换
var arr=[2,45,4,65,684,8,34];
var str=arr.splice(1,2,'ai','he');//从下标为1的位置处开始删除2个并替换新元素
console.log(str);
console.log(arr);
6.reverse
翻转
var arr=[1,2,3,4,5];
var str=arr.reverse();
console.log(str);//输出[5,4,3,2,1]
...还有几种,明天讲
三、数组排序
1.arr.sort();
var arr=[2,4,3,5,1];
var str=arr.sort();
console.log(str);//输出[1,2,3,4,5]
2.像以下这种函数用arr.sort无法实现排序,这时候就需要用到比较器函数
var arr=[1,12,22,13,23,33,3,2];
function cmp(a,b){
//return a-b;//升序排列
return b-a;//降序排列
}
console.log(arr.sort(cmp));
!
End!