一、数组的最厉害的方法
arr.splice('起始下标 , 删除的个数 , 添加的项 )
一个方法可完成添加、删除、和替换
//添加
var arr = ['后裔', '黄忠', '小乔', '大乔']
var n = arr.splice(2, 0, '阿彬') //添加的就是下标为2 的位置 0就是不删 ,
console.log(n) //[]
console.log(arr) //["后裔", "黄忠", "阿彬", "小乔", "大乔"]
//添加多个
var arr1 = ['后裔', '黄忠', '小乔', '大乔']
var n1 = arr1.splice(2, 0, '阿彬', '阿甘') //添加的就是下标为2 的位置 0就是不删
console.log(n1) //[] 没有删除 就是空数组
console.log(arr1) //["后裔", "黄忠", "阿彬", "阿甘", "小乔", "大乔"]
// arr.splice() 方法的返回值 返回被删除的项组成的数组 没有删就是[]
//删除
var arr2 = ['后裔', '黄忠', '小乔', '大乔']
var n2 = arr2.splice(2, 1) //从下标为2 的地方删除1个
console.log(n2) //[小乔]
console.log(arr2) //["后裔", "黄忠", "大乔"]
// 替换
var arr3 = ['后裔', '黄忠', '小乔', '大乔']
var n3 = arr3.splice(2, 1, '程咬金') //从下标为2 的地方删除1个
console.log(n3) //[小乔]
console.log(arr3) //["后裔", "黄忠", "程咬金", "大乔"]
二、数学对象
1)数学算法
console.log(Math.round(9.5)) //四舍五入 10
console.log(Math.floor(9.9)) //向下取整 9
console.log(Math.ceil(9.00)) //向上取整 9
console.log(Math.ceil(9.2)) //向上取整 10
console.log(Math.max(12, 18, 21, 88, 101)) //最大值 101
console.log(Math.min(12, 18, 21, 88, 101)) //最小值12
console.log(Math.abs(-10)) //绝对值 10
2)随机数
// 随机数
//Math.random() //返回 1>x>=0 之间的数
console.log(Math.random()) //0.5557528459856944 每次打印的不同仅供参考
//打乱这个数组
//var arr = [1, 2, 3, 4, 5, 6, 7, 11]
var arr = [18, 2, 31, 8, 11]
arr.sort(function(x, y) {
// return x - y //升序排序 [2, 8, 11, 18, 31]
// return y - x //降序序排序 [31, 18, 11, 8, 2]
return Math.random() - 0.5
//这个是0-1的数 -0.5 可能是负数 可能是正数 不确定
})
console.log(arr)
sort
var arr1 = [2, 18, 31, 8, 11]
console.log(arr1.sort()) //[11, 18, 2, 31, 8]
//升序 这只是尽心unicode编码进行排序
//想正常使用就要传入比较函数
console.log(arr1.sort(function(x, y) {
return x - y //[2, 8, 11, 18, 31]
// 类似于 2 - 18 < 0
/*
x-y<0 升序
x-y>0 降序
x-y=0 不变
总之是x在前
*/
}))