目录
2.比较两个数组内容是否完全一致,如果一致,打印true 不一致 打印false
六、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字,并组成新数组。
1.定义一个整型数组,求出数组中奇数个数和偶数个数
var arr = [1,2,3,4,5,6,7,8,9,10];
var ou = 0; // 计数器
var ji = 0; // 计数器
// 把数组中 每一个元素下标都拿出来判断 是奇数还是偶数
for(var i = 0; i < arr.length; i ++){
if(arr[i] % 2 ==0){
ou ++;
}else{
ji ++;
}
}
console.log("偶数个数为" + ou); // 5
console.log("奇数个数为" + ji); // 5
2.比较两个数组内容是否完全一致,如果一致,打印true 不一致 打印false
var arr1 = [1, 2, 3];
var arr2 = [1, 2, 3, 44];
var arr3 = [1, 2, 0];
var arr4 = [1, 2, 3];
var arrtof = 0; //计数器
if (arr1.length !== arr4.length) {
console.log(false);
//比较两个数组的长度,长度一致执行else,长度不一致直接输出false
} else {
for (var i = 0; i < arr1.length; i++) {
if (arr1[i] !== arr4[i]) {
console.log(false);
break;
//比较两个数组对应的元素是否一致,一致执行else,不一致直接输出false,并break结束循环
} else {
arrtof++;
//相对应元素一致就计数器自增一
}
}
}
if (arrtof == arr1.length) {
console.log(true);
//若计数器的数字与数组长度一致,则表示完全相同,则输出true
}
3.根据答案算分数
根据正确答案【ADBCD】,每题2分共10分,求出每名学生最终得分。
四名同学答案分别为:
小张:【DCBAD】
小美:【ADBCD】
小丽:【ADBCA】
小好:【ABCDD】
每答对一题,得2分,输出四名同学的最终得分。
var arr = ['A', 'D', 'B', 'C', 'D'];
// 标准答案
var score = [0, 0, 0, 0];
// 每人分数
var daan = [
['D', 'C', 'B', 'A', 'D'],
['A', 'D', 'B', 'C', 'D'],
['A', 'D', 'B', 'C', 'A'],
['A', 'B', 'C', 'D', 'D']
];
// 所有同学的答案
for (var i = 0; i < daan.length; i++) {
// 遍历每一位同学的答案的整体数组
for (var j = 0; j < daan[i].length; j++) {
// 遍历每一位同学的数组的每一个答案
if (daan[i][j] === arr[j]) {
// 判断答案是否正确
score[i] + = 2;
// 正确则加2分
}else{
score[i] + = 0;
}
}
console.log(score); // [4,10,8,4]
4.利用数组求平均分
请用数组实现:已知歌唱选手的分数为,90,70,80,60,95,85,70,现要求出该选手的最后成绩,计算方式为去掉最高分和最低分再求平均值;
var arr = [90, 70, 80, 60, 95, 85, 70];
// 冒泡
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
//[60, 70, 70, 80, 85, 90, 95]
// slice [)
var newarr = arr.slice(1,arr.length-1);
console.log(newarr);
//[70, 70, 80, 85, 90]
var sum = 0;
for(var i =0;i<newarr.length;i++){
sum += newarr[i];
}
console.log(sum / newarr.length);
//79
5.数组去重
arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];
1.arr.slice去重
var arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1); // 删除
j--; // 回溯
}
}
}
2.indexOf去重
var arr = [1, 2, 3, 3, 3, 4, 5, 2, 1, 6, 7, 7, 8, 5, 6, 9];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
console.log(newArr);
六、找到在第一个数组array1中出现,而在第二个数组array2中没有出现的数字,并组成新数组。
arr1 = [2, 44, 8, 23, 13, 5];
arr2 = [2, 64, 38, 73, 13, 5];
var arr1 = [2, 44, 8, 23, 13, 5];
var arr2 = [2, 64, 38, 73, 13, 5];
for (var i = 0; i < arr1.length; i++) {
for(var j=0;j<arr2.length;j++){
if(arr1[i] === arr2[j]){
arr1.splice(i,1);
}
}
}
console.log(arr1);
七、二维数组转一维数组
arr = [1,2[3,4,5,6]]
// 数组
var arr = [1, 2, [3, 4, 5, 6]];
var newArr = [];
// Array.isArray() 判断是否为一个数组
for (var i = 0; i < arr.length; i++) {
// 通过 Array.isArray() 判断当前遍历项是否为一个数组
// 如果是一个数组的话,则需要继续遍历
if (Array.isArray(arr[i])) {
for (var j = 0; j < arr[i].length; j++) {
newArr.push(arr[i][j]);
}
} else {
// 如果不是一个数组,则直接放进新数组中
newArr.push(arr[i]);
}
}
console.log(newArr);