2019-4-25 数组操作方法和练习

2019-04-25 06:52:28来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//数组的基本操作
//1、创建数组
var arr = [1,3,5,7];
var arr1 = new Array(11,22,33);
var arr2 = Array(111,222);
//2、访问数组成员;数组[索引] 下表从0开始
//console.log(arr[0]);
//3、修改数组,修改某个索引位置的数据
arr[1] = "heheheh";
console.log(arr[1]);

//4、添加数据到数组,会修改数组的长度
arr[4] = "我是新增的数据";

//5、如果需要往数组最后面添加数据,那么索引就是当前数组的长度
arr[arr.length] = "我是通过arr.length来添加的数据";

//6、访问数组的长度; 数组.length
console.log(arr.length);
console.log(arr[0]);

arr.length = 4;//修改数据的长度 长度大于该数据的会被删除;
console.log(arr.length);

arr1.length = 0;//设置为0,就是清空数组的数据;

delete arr2[1];//删除某个数据的索引 delete 数组名[索引];
//delete 删除的是数组索引对应数据赋值为undefined,该数组的长度没有变化
console.log("arr2数组的长度为:"+arr2.length);



//7、遍历数组(迭代数组)
//第一种方法
//创建又一个数组
var arr3 = ["hehe","hehehehehe",1,5,659,"zhutou"];

for (var i=0;i<arr3.length;i++) {
var value = arr3[i];// i 是数组的索引 arr3[i]表示获取数组的索引
console.log(value);
}

//第二种方法

var arr4 = ["1","22",1,5,659,"888"];
for (var i in arr4) {
// var v= arr4[i];
// console.log(v);
document.write(arr4[i]+" ");
}


/*
* 数组为:[1,3,5,7,24,32,25,48]
1.求数组中数字奇数的个数和偶数的 "个数"
2.求出上面数组的平均值
*/
var arr5 = [1,3,5,7,24,32,25,48];

var n1 = 0;//记录偶数的个数
var n2 = 0;//记录奇数的个数
var sum = 0;//定义一个变量,存储和;

//遍历数组
for (var i=0;i<arr5.length;i++) {
var vv = arr5[i]; //获取所有数组的数据
sum += vv; //获取所有数组的数据进行累加
if (vv%2==0) {
n1++;
}else{
n2++;
}
}
console.log(n1,n2,sum/arr5.length);


//练习二 设计一个数组的最大值的

var arr7 = [-10,52,999,-69,0,85];
//定义一个数组 默认最大值是第一个元素
var maxsum = arr7[0];
//i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
//遍历数组
for (var i=1;i<arr7.length;i++) {
var v1 = arr7[i];
if (v1>maxsum) {// 把数组中数与max比较,如果v大于max,证明v是最大值;
maxsum = v1;//把v赋值给max;
}
}
console.log("最大值是:"+maxsum);


//求数组的最小值 arr = [23,3,5,7,243,1,25,48];
var minNum = [23,3,5,7,243,1,25,48];
//假设一个数据为最小值
var minN = minNum[0];
for (var i = 0;i<minNum.length;i++) {
var mN = minNum[i];
if (mN<minN) {//mN时数组的数据,如果小于我们假设的值,说明第一次的mN是最小值,
minN = mN;
}
}
console.log("最小时"+minN);

var aaa = [-77,-10,-99,-30];

//定义一个最大值,默认先假设最大值是第一个元素;
var max = aaa[0];

//i 从1开始,因为我们默认最大值就是第一个元素,从0开始比较没有意义;
for(var i=1;i<aaa.length;i++){
var v = aaa[i];
if(v>max){ // 把数组中数与max比较,如果v大于max,证明v是最大值;
max = v; //把v赋值给max;
}
}
console.log(max);

//定义一个数组,输入9个任意的整数,求该数组中奇数的个数和奇数的平均值。

var nineNum = [11,22,33,14,25,36,96,-78,85];
//定义一个变量记录奇数 的个数和奇数和
var a1 = 0;
var a1Num = 0;
//遍历数组
for (var i = 0;i<nineNum.length;i++) {
var newNum = nineNum[i];//遍历出数组的数据
//通过if语句判断是否是奇数
// if (nineNum[i]%2==1) {
// a1++;
// a1Num += nineNum[i];
//
// }
if (!(newNum%2==0)) {
a1++;
a1Num += newNum;

}

}
//a1Num += a1;
console.log("奇数的个数为:"+a1);
console.log("奇数的平均值为:"+a1Num/a1);

//10、二维数组:
//二维数组本质上是以数组作为数组元素的数组

//创建一个二维数组
var newArr = [
[1,2,3],
[4,5,6],
[7,8,9]
]
console.log(newArr[0][0]);//获取内部数组的第一个元素
console.log(newArr[1][1]);//获取内部数组的元素

//遍历二维数组
for (var i=0;i<newArr.length;i++) {
var maxNew = newArr[i];
//遍历的是大数组,还剩下小数组 需要再次遍历
for (var j=0;j<maxNew.length;j++) {
var minNew = maxNew[j];
console.log(minNew);
}
}

//通过for in方式遍历二维数组

for (var i in newArr) {
var m1 = newArr[i];
for (var j in m1) {
var m2 = m1[j];
console.log(m2);
}
}


//二维数组小练习
//创建一个二维数组
var group = [
[80,92,92],
[61,65,71],
[59,1199,70],
[85,87,90],
[76,77,88]
];
//找出以下数组中最大值;
//最大值对应的索引值 ,需要定义两个索引记录;
var maxRow = 0;
var minCol = 0;
var max = group[0][0];//默认第一个元素为最大值
//遍历二维数组
for (var i=0;i<group.length;i++) {
var v1 = group[i];
//再次遍历
for (var j = 0;j<v1.length;j++) {
var v2 = v1[j];//遍历完所有数据
//进行if判断
if (v2>max) {
max = v2;
maxRow = i;
minCol = j;
}
}
}
console.log(max,maxRow,minCol);



/**
* (二维数组,逻辑,偏难)//求该数组的平均值,最大值,最小值
*
var arr = [
[12,43,23,123],
[54,54,23,64],
[86,67,34,23]
];


求该数组的平均值; 所有数和/所有数的个数;
所有数和:获取数组中所有数,相加保存;
所有数的个数:其实就是二维数组中内部那个数组的个数相加;

最大值;
最小值;
*/
//定义一个数组
var aaa = [
[12,43,23,123],
[54,54,23,64],
[86,67,34,23]
];
//定义一个变量存储所有数的和
var aaaSum = 0;
//定义一个变量存储所有数的个数
var count = 0;

var maxA = aaa[0][0];
var minA = aaa[0][0];

//遍历数组;
for (var i=0;i<aaa.length;i++) {
var aa1 = aaa[i];
//获取每一个数组的长度相加
count += aa1.length;
//再次遍历
for (var j=0;j<aa1.length;j++) {
var aa2 = aa1[j];
//将获取的数据累加
aaaSum += aa2;
//使用if判断最大值、最小值
if (aa2>maxA) {
maxA = aa2;
} else if(aa2<minA){
minA = aa2;
}
}
}
console.log(aaaSum/count);
console.log(maxA,minA);
</script>
</body>
</html>


原文链接:https://www.cnblogs.com/webJian/p/10767463.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:微信小程序报Cannot read property &#39;setData&#39; of unde

下一篇:vue-router 通过路由来实现切换头部标题