数组塌陷 i--
数组去重:两种方法
<script>
// 数组塌陷:数组删除都有,所以要 i--
/*
(
想把数组删除完,但是删除不尽,splice()
因为删除出去的数据,不占位置了,
想要解决塌陷,则需要改变数组长度,不建议
所以可以:改变i,让i保持不变,-1,这也不建议,
不如:i--;每次循环自减一次
)
*/
var arr = [100, 200, 300, 400, 500, 600]
for (let i = 0; i < arr.length; i++) {
// 第一种
arr.shift(arr[i])
i--
// 第二种
// arr.splice(i,1)
// i--
}
console.log(arr)
/*
数组去重;两种,用indexOf() -1判断
第一种:改变数组,删除 splice
第二种:新建数组
*/
// 第一种
var arr2 = [1, 1, 2, 3, 4, 4, 5, 2, 3, 7]
for (let i = 0; i < arr2.length; i++) {
var res = arr2.indexOf(arr2[i], i + 1) //res中存储的就是后面重复出现数据
if (res != -1) { //数据不存在返回-1, !等于-1, 意思第一次存在保留。后边相同就删除了
arr2.splice(res, 1)
i-- // 解决数组塌陷
}
}
console.log(arr2)
// 第二种
// 数组去重。封装
var arr3 = [1, 1, 2, 3, 4, 4, 5, 2, 3, 7]
function arrDelSame(arr3) {
var newArr = []
for (let i = 0; i < arr3.length; i++) {
var res = newArr.indexOf(arr3[i]) // 检测新数组中有没有,数组数据:arr3[i],没有的话返回值-1
if (res == -1) { // 新数组中没有添加,有则不添加
newArr.push(arr3[i])
}
}
return newArr
}
var res = arrDelSame(arr3)
console.log(res)
</script>
小方法(十进制转换,保留几位小数)
<script>
/*
1.将十进制转成其他进制的方法
语法:十进制的数字.toString(你要转成几进制)
*/
var num = 11//这个5是一个十进制的数字
// 我想把这个5,也就是num转成二进制
var res = num.toString(16)
console.log(res); // 输出b
//10 11 12 13 14 15
//a b c d e f
/*
2.将其他进制转成十进制
语法:parseInt(数字,你要把这个数字当作几进制)
*/
// var res = parseInt(10, 2)
// console.log(res);//2
/*
3.toFixed()
语法:数字.toFixed(你要保留几位)
保留小数点的时候会自动进行四舍五入
*/
var num = 3.141634567
var res = num.toFixed(2)
console.log(res);//3.14
</script>
Math.方法:
// 随机数的公式:var res = Math.round(Math.random() * (max-min)+min)
// 索引的最小是:0
// 索引的对大值:arr.length-1
<script>
/*
1.Math.random()
作用:生成随机数,取值之间在0-1之间,取不到最大值.
2.Math.round(数字)
作用:四舍五入取整
3.Math.ceil(数字)
作用:向上取整
4.Math.floor(数字)
作用:向下取整
5.Math.abs(数字)
作用:绝对值
6.Math.pow(x,y)方法
求x的y次方
等价于**
7.Math.sqrt(数字):求算数平方根
8.Math.max(数字1,数字2,...)求一堆数字中的最大值
9.Math.min(数字1,数字2,...)求一堆数字中的最小值
10.Math.PI
*/
// var res = Math.random()
// console.log(res);
// var res = Math.round(3.5)
// console.log(res);
// var res = Math.ceil(3.9)
// console.log(res);
// var res = Math.floor(3.1)
// console.log(res);
// var res = Math.abs(-5)
// console.log(res);
// var res = Math.pow(2, 3)
// console.log(res);
// var res = Math.sqrt(16)
// console.log(res);
// var res = Math.max(10, 2, 300, 4, 6)
// console.log(res);
// var res = Math.min(10, 2, 300, 4, 6)
// console.log(res);
// console.log(Math.PI);
</script>
// 随机数的公式:var res = Math.round(Math.random() * (max-min)+min)
// 索引的最小是:0
// 索引的对大值:arr.length-1
// 随机点名
// var arr = ['张','徐' ,'王' ,'赵' ,'刘']
// var index = Math.round(Math.random()*(arr.length-1-0),0)
// console.log(arr[index])
// 2 颜色随机
function randomColor() {
var color = '#'
//0123456789abcdef
for (var i = 0; i < 6; i++) {
// 获取 1~15 之间的任意数
var num = Math.round(Math.random() * (15 - 0) + 0)
// 转换成16进制,获取字母
var res = num.toString(16)
color += res
}
return color
}
var res = randomColor()
console.log(res)
// 1
// var str = '0123456789abcdef'
// var color = '#'
// for(var i = 1; i <= 6; i++){
// var index = Math.round(Math.random()*(str.length-1-0)+0) //随机下标(索引)
// color += str[index]
// }
// console.log(color)