作业1. 数组去重
[1, 1, 2, 2, 3, 4, 5, 5] 数组去掉重复数字=>[1,2,3,4,5]
//做题思路:第一个和第二个依次比较
<script>
//数组排序
var arr = [1, 1, 1, 5, 1, 2, 5, 2, 7, 9];
/* arr.length=8
第一次循环7次
第二次循环6次
第三次循环5次
第四次循环4次
.....
*/
// 控制外部循环的次数 因为i = 0 所以 i的个数要减1
for (var i = 0; i < arr.length - 1; i++) {
// 控制内部的循环次数
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
//去重
else if (arr[j] === arr[j + 1]) {
arr.splice(j, 1);
}
}
}
console.log(arr);
</script>
作业2. 翻转数组
[1, 1, 2, 2, 3, 4, 5, 5] 翻转输出为
[5, 5, 4 ,3 ,2 ,2 ,1 ,1]
//做题思路:创建一个新的数组,倒叙遍历原数组,赋值给新数组,最后在赋值给原数组,完成数组翻转
<script>
/*
翻转数组
[1, 1, 2, 2, 3, 4, 5, 5] 翻转输出为
[5, 5, 4 ,3 ,2 ,2 ,1 ,1]
*/
var arr = [1, 1, 2, 2, 3, 4, 5, 5];
//创建一个新的数组
var newArr=[ ];
// 倒叙 i 从最后一位开始
for(var i = arr.length-1 , j = 0 ; i >= 0 ;i-- ,j++){
//原数组的最后一位赋值给新数组的第一位
newArr[j] = arr[i];
}
//把新数组的元素赋值给原数组
arr = newArr;
console.log(arr);
</script>
作业3. 1、编写一个函数,计算输入的任意三个数字的大小,按从小到大顺序输出。
如 调用函数 f(3,2,5) 输出 2,3,5
调用函数 f(2,1,7) 输出1,2,7
注意先判断传入的参数数据类型。
<script>
/*
1、编写一个函数,计算输入的任意三个数字的大小,按从小到大顺序输出。
如 调用函数 f(3,2,5) 输出 2,3,5 */
function fnl(a, b, c) {
// 运用 +数值运算符 把传入的参数转为数字类型
a = + a;
b = + b;
c = + c;
//判断是否为数字类型 如果传入的参数不能转换为数字类型则会转换为flase
// false 取反则为true
因为0和1在if比较中会转换为bool值 所以比较的时候转为字符串比较
if (!String(a) || !String(b) || !String(c)) {
alert("请输入数字");
} else {
// 创建一个数组
var arr = [a, b, c];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr.toString());
}
}
fnl(3, 2,0);
</script>