首先先简单介绍一下数组,数组是什么?如何创建数组?如何访问遍历数组?接下来就先简单的介绍一下:
数组概念:
数组指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。
创建数组:
1.用new关键字创建数组
2.用字面量创建数组
区别:用new关键字创建的数组,如果里面只包含一个值,那么它就是该数组的数据,而用字面量创建的数组,当里面包含一个值时,该值代表的是该数组里应包含几个数据。
访问遍历数组:
索引(下标):用来访问数组元素的序号。索引从 0 开始
练习题
1. 将数组中不为0的数据存入新数组
2. 求出数组中的最大值
3. 将数组中的值转为字符串,并用符号 " | " 分隔
4. 新建一个数组,里面随机存放10个整数(1-10)
5. 选出数组中大于10的数
6. 数组去重
7. 数组反转
8. 数组冒泡排序
9. 求出数组元素和
10. 求出数组中的平均值
11. 打印出数组的奇数
12. 计算数组中能被3整除的偶数和
答案代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>数组练习</title>
</head>
<body>
<h4>将数组中不为0的数据存入新数组</h4>
<script>
// 将数组中不为0的数据存入新数组
let arres = [0, 2, 3, 6, 30, 7];
let newArr = [];
// for
for (let w = 0; w < arres.length; w++) {
if (arres[w] !== 0) {
newArr.push(arres[w]);
}
}
document.write(newArr);
document.write('<br/>');
// while
let im = [];
let p = 0;
while (p < arres.length) {
if (arres[p] !== 0) {
im.push(arres[p]);
}
p++;
}
console.log(im);
// do while
let none = [];
let t = 0;
do {
if (arres[t] !== 0) {
none.push(arres[t]);
}
t++;
} while (t < arres.length);
console.log(none);
// 求出数组中的最大值
let arr = [2, 4, 7, 5, 9];
// 用Math.max方法结合扩展运算符...来求取最大值
let max = Math.max(...arr);
console.log(max);
// 将数组中的值转为字符串,并用符号 " | " 分隔
let arrs = ['李华', '小亮', '无名', '佚名'];
let join = '';
for (let i = 0; i < arrs.length; i++) {
join += arrs[i] + '|';
}
console.log(join);
// 新建一个数组,里面随机存放10个整数(1-10)
let createRandomArray = () => {
return Array.from({
length: 10
}, () => Math.floor(Math.random() * 10) + 1);
};
let randomArray = createRandomArray();
console.log(randomArray);
// 选出数组中大于10的数
let arr1 = [2, 3, 5, 98, 12, 54];
// 可以使用Jfilter过滤(number => number > 10)方法
let f = arr1.filter(number => number > 10);
console.log(f);
// 数组去重
let arre = [1, 2, 3, 1, 4, 5, 3, 2, 3, 2];
let uniqueArray = arre.filter((value, index, self) => self.indexOf(value) === index);
console.log(uniqueArray); // [1, 2, 3, 4, 5]
// indexof搜索
// 数组反转
let array = [2, 3, 4, 5, 6, 7];
array.reverse();
console.log(array);
// 数组冒泡排序
let arras = [2, 4, 6, 7, 23, 44, 12, 65];
for (let i = 0; i < arras.length - 1; i++) {
for (let j = 0; j < arras.length - 1 - i; j++) {
if (arras[j] > arras[j + 1]) {
let num = arras[j];
arras[j] = arras[j + 1];
arras[j + 1] = num;
}
}
}
console.log(arras);
// 求出数组元素和
let arrss = [2, 3, 8, 6];
// for
let sum = 0;
for (let l = 0; l < arrss.length; l++) {
sum += arrss[l];
}
console.log(sum);
// while
let u = 0;
let sums = 0;
while (u < arrss.length) {
sums += arrss[u];
u++;
}
console.log(sums);
// do while
let y = 0;
let sumes = 0;
do {
sumes += arrss[y];
y++;
} while (y < arrss.length);
console.log(sumes);
// 求出数组中的平均值
let num = [2, 3, 4, 5, 7, 3];
// for
let add = 0;
for (k = 0; k < num.length; k++) {
add += num[k];
}
console.log(add / num.length);
// while
let q = 0;
let adds = 0;
while (q < num.length) {
adds += num[q];
q++;
}
console.log(adds / num.length);
// do while
let d = 0;
let addes = 0;
do {
addes += num[d];
d++;
}
while (d < num.length);
console.log(addes / num.length);
// 打印出数组的奇数
let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// for
for (j = 0; j < nums.length; j++) {
if (nums[j] % 2 != 0) {
console.log(nums[j]);
}
}
// do while
let g = 0;
let single = 0;
do {
if (nums[g] % 2 != 0) {
console.log(nums[g]);
}
g++;
} while (g < nums.length);
// while
let h = 0;
while (h < nums.length) {
if (nums[h] % 2 != 0) {
console.log(nums[h]);
}
h++;
}
// 计算数组中能被3整除的偶数和
let namee = [3, 6, 9, 12, 15, 18, 21, 33, 36, 54];
// do while
let i = 0;
let and = 0;
do {
if (namee[i] % 3 == 0 && namee[i] % 2 == 0) {
and += namee[i];
}
i++
} while (i < namee.length);
console.log(and);
// for
let result = 0;
for (let e = 0; e < namee.length; e++) {
if (namee[e] % 3 === 0 && namee[e] % 2 === 0) {
result += namee[e];
}
}
console.log(result);
// while
let c = 0;
let total = 0;
while (c < namee.length) {
if (namee[c] % 3 == 0 && namee[c] % 2 == 0) {
total += namee[c];
}
c++;
}
console.log(total);
</script>
</body>
</html>