乐趣区

JavaScript基础总结(三)——数组总结

关于 JavaScript 中的数组做出了如下总结:1、数组是用来存储一组不同类型的数据的容器。可以使用构造函数的方法和字面量的方法来声明函数;访问数组通过下标的方法来访问;arr.length 可以获得数组长度。2、数组栈方法包括:
unshift(): 在数组头部插入值,返回值为数组长度
push(): 在数组末尾插入值,返回值为数组长度
shift():删除数组中第一个值,返回值为被删除的值
pop(): 删除数组中最后一个值,返回值为被删除的值
3、数组转字符串:
join(“ 转换成字符的连接符,默认为逗号分开 ”)
4、数组排序:
reverse() 数值反序(例如下:var arr=[1,2,3];
document.write(arr.reverse()); 输出值为:3,2,1)
sort() 元素比较大小(比大小分两种情况,例 1 如下:
var arr=[5,2,3];
var arrs=arr.sort();
document.write(arrs);输出值为 2,3,5;
例 2 如下:
var arr=[1,21,3,0];
document.write(arr.sort()); 输出值为 0,1,21,3;
例 2 的比较大小是按第一个元素来比较的,正确升序应该为 0,1,3,21,代码如下:
var arr=[1,21,3,0];
document.write(arr.sort(function (x,y){
return x-y;
})); 输入出值为:0,1,3,21;
降序为:
var arr=[1,21,3,0];
document.write(arr.sort(function (x,y){
return y-x;
})); 输出值为 21,3,1,0;

所以 sort 在对数组进行排序后,返回新数组,sort 里可以接收一个匿名函数来对数组进行升序与降序
5、splice: 具有删除、替换、插入功能
例如下:
var arr=[1,2,3,5];
//splice 替换值,替换 3
var insertArr=arr.splice(2,1,” 我是替换值 ”);// 返回被删除的值
document.write(arr+”<br />”);// 输入结果为 [1,2, 我是替换值,5]
//splice 插入值,在 3 的后面插入值
var replaceArr=arr.splice(3,0,” 我是插入值 ”);
document.write(arr+”<br />”);//[1,2,3, 我是插入值,5]
//splice 删除值
var delArr=arr.splice(2); // 返回被删除的值
document.write(arr+”<br />”); //[1,2]
6、arr.indexOf(必写的要查找的项,可选查找的起点的位置索引) 从数组的头部开始检测 arr.lastIndexOf(必写的要查找的项,可选查找的起点的位置索引) 从数组的尾部开始检测 例:
var arr=[1,2,3,5,2,1,3];
// 数组头部开始检测元素 2 的位置
var firstArr=arr.indexOf(2)
console.log(“ 数组中从前往后数第一个元素 2 的下标为 ”+firstArr); // 输出值为 1
// 数组尾部开始检测元素 1 的位置
var lastArr=arr.lastIndexOf(1);
console.log(“ 数组中从后向前数第一个元素 1 的下标为 ”+lastArr); // 输出值为 5

7、常见的数组面试题如下:1)数组去重
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<script type=”text/javascript”>
var arr=[1,2,3,1],// 原数组
newArr=[], // 新数组
flag;
for(var i=0;i<arr.length;i++){// 循环原数组
flag=true;
for(var j=0;j<newArr.length;j++){// 循环新数组
if(newArr[j]==arr[i]){// 如果两个数组中有相同的数,flag 为假
flag=false;
}
};
if(flag){// 如果 flag 为真
newArr.push(arr[i]);// 将 arr[i] 插入到新数组中
}
}
document.write(newArr)
</script>
</body>
</html>
2)数组求和
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<script type=”text/javascript”>
//1. 计算给定数组 arr 中所有元素的总和
var arr=[1,2,3];
function arryAnd(){
var sum=0;// 和的初始值
for(var i=0;i<arr.length;i++){
sum+=arr[i];//sum=sum+0+arr[i] 依次类推
}
console.log(sum);
}
arryAnd();
</script>
</body>
</html>
3)合并数组
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<script type=”text/javascript”>
// 合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
var arr1=[1,2,3],
arr2=[4,5,6],
arr;
function merge(){
return arr1.concat(arr2)
}
console.log(merge());
console.log(arr)
</script>
</body>
</html>
4)将数组中某个数删除,以 0 为例
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<script type=”text/javascript”>
var arr=[0,2,3,0,5,0],// 旧数组
newArr=[];
for(var i=0;i<arr.length;i++){// 循环新数组
if(arr[i]==0) continue;
newArr.push(arr[i]);
}
console.log(newArr);
</script>
</body>
</html>
5)switch 星期的获取
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8″>
<title></title>
</head>
<body>
<script type=”text/javascript”>
// 获取星期的方法
var week=new Date().getDay();
console.log(week);// 返回 number,0-6
switch(week){
case 0:
document.write(“ 星期日 ”);
break;
case 1:
document.write(“ 星期一 ”);
break;
case 2:
document.write(“ 星期二 ”);
break;
case 3:
document.write(“ 星期三 ”);
break;
case 4:
document.write(“ 星期四 ”);
break;
case 5:
document.write(“ 星期五 ”);
break;
case 6:
document.write(“ 星期六 ”);
break;
// 或最后一天如下所示:
// default:
// document.write(“ 星期六 ”);
}
</script>
</body>
</html>

退出移动版