发现Math数学运算的题挺难找的,前前后后找了好久都找不出来,零零散散找了一些,自己练练顺便整合整合
目录
六、输入一个数,如果是负数,则输出绝对值,如果是小数,则四舍五入,如果是整数,则求其3次幂
七、在一个已经排序好的数组中插入一个新数组,并对该数组进行排序
一、生成指定的随机数
<script>
//1、封装一个随机数函数
function getRandom(Min, Max) {
return Math.floor(Math.random() * (Max - Min + 1)) + Min
}
//2、获取指定随机数:1 - 10
const random = getRandom(1, 10)
console.log(random)
</script>
优化
//1、封装一个随机数函数
const getRandom = (Min, Max) => Math.floor(Math.random() * (Max - Min + 1)) + Min
//2、获取指定随机数:1 - 10
const random = getRandom(1, 10)
console.log(random)
二、随机十六进制颜色
<script>
const color = () => {
let color = '#' //十六进制颜色由 # 开头
//十六进制分别从0-15,用一个数组进行声明
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
//然后要获取到数组中随机的一个数,但是,十六进制色是由一个# 和6个数组成,所以要循环六次
for (let i = 0; i < 6; i++) {
//把随机获取到的数添加给color
const random = Math.floor(Math.random() * 15) + 1
color += arr[random]
}
return color
}
//调用
console.log(color())
</script>
三、点击按钮,随机给div添加一个颜色
沿用十六进制的函数
1、HTML和CSS
<style>
div {
width: 200px;
height: 200px;
}
</style>
----HTML ----
<div></div>
<button>随机变色</button>
2、JS部分
//1、封装了十六进制随机数
const color = () => {
let color = '#' //十六进制颜色由 # 开头
//十六进制分别从0-15,用一个数组进行声明
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']
//然后要获取到数组中随机的一个数,但是,十六进制色是由一个# 和6个数组成,所以要循环六次
for (let i = 0; i < 6; i++) {
//把随机获取到的数添加给color
const random = Math.floor(Math.random() * 15) + 1
color += arr[random]
}
return color
}
//2、给按钮绑定事件,并给div添加style样式
document.querySelector('button').addEventListener('click', () => {
document.querySelector('div').style.backgroundColor = color()
})
3、效果
四、实现数组最大值与最小值
<script>
const arr = [1, 3, 5, 7, 9, 11, 2, 4, 6, 8, 10]
//求出最大值
console.log(Math.max(...arr))
//求出最小值
console.log(Math.min(...arr))
</script>
五、计算整数 12345 的每个位数上的和,且向上取整
const num = 12345
//获取到个位数、十位数、百位数、千位数、万位数
const a = num % 10
const b = num / 10 % 10
const c = num / 100 % 10
const d = num / 1000 % 10
const e = num / 10000 % 10 //分别获取
//使用Math.ceil()方法实现向上取整
console.log(Math.ceil(a + b + c + d + e))
六、输入一个数,如果是负数,则输出绝对值,如果是小数,则四舍五入,如果是整数,则求其3次幂
<script>
let num = +prompt('请输入一个数:') //注意 +号,接收回来一个数字型变量
//如果是负数,就求绝对值: Math.abs()用于求绝对值
if (num <= 0) console.log(Math.abs(num))
//如果是小数,则四舍五入
//小数是不能被1取余为0的,Math.round()方法用于四舍五入
if (num % 1 != 0) {
console.log(Math.round(num))
} else {
//如果是整数,就求出三次幂
console.log(Math.pow(num, 3))
}
</script>
七、在一个已经排序好的数组中插入一个新数组,并对该数组进行排序
<script>
const arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const arr2 = [1, 6, 3, 12, 8, 4, 7, 9, 13, 17, 24]
//使用 展开运算符... 合并两个数组
const newArr = [...arr1, ...arr2]
console.log(newArr) //合并成一个新数组
//通过: Arrays.sort()对数组进行升序
console.log(newArr.sort(function (a, b) {
return a - b
}
));
</script>