数组方法
let ar=[1,4,6]
let res=ar.filter(item=>item>4)//filter过滤,查找大于4的所有数据。
let res=ar.map(item=>item==4)//map映射,返回一个新的数组,打印[false, true, false]。
let res=ar.reduce((s,n)=> {
return s+n;
},0)//reduce汇总,打印11
let ar=[6,4,19]
ar.push(25) //数组末尾添加25
ar.unshift(25) //数组开始添加25
ar.pop() //删除一个末尾数据
ar.shift() //删除一个开始数据
ar.splice(0,1) //数组删除,重0下标开始删除,删除1个。
ar.splice(1,0,9,8) //从1下标添加,0表示不删除,1下标前面添加9、8。
ar.splice(1,0,...ar) //添加数组简写
ar.every(age => age >= 8) //检测数组的所有元素是否都大于8,返回布尔值.
ar.find(age => age >= 5)) //查找大于等于5的第一个数据。
ar.includes(4) //查找没有4的值。返回布尔值。
ar.findIndex(age => age >= 5) //查找大于等于5的key值。
数字类型
parseFloat((0.1 + 0.2).toFixed(10))//0.3,适用于浮点数相加,不会造成小数点精度丢失。
function accAdd (arg1, arg2) {//更精确的的写法
let r1, r2, m;
try{
r1 = arg1.toString().split(".")[1].length
} catch (e) {
r1 = 0
}
try{
r2 = arg2.toString().split(".")[1].length
} catch (e) {
r2 = 0
}
m = Math.pow(10, Math.max(r1,r2))
return (parseInt(arg1*m, 10) + parseInt(arg2*m, 10)) / m
}
console.log(accAdd(0.13,0.69889))
字符串方法
startsWith 判断以什么字符串开头
endsWith 判断以什么字符串结尾
let url = "https://www.baidu.com";
if(url.startsWith('https')){
console.log(url)
}else{
console.log('不是以 https 开头的')
}
if(url.endsWith('cn')) {
console.log(url);
}else{
console.log(" 不是以 .cn 结尾的 URL");
}
let aa = '32332,323,55,21,22'//字符串转数组
aa=aa.split(',')
console.log(aa);//["32332", "323", "55", "21", "22"]
JSON对象
JSON.stringify() 串行化
JSON.parse() 反串行化
let obj = {name:'张三',age:222};
obj=JSON.stringify(obj);//把obj转成字符串
console.log(obj);
obj=JSON.parse(obj);//把obj字符串转成JSON对象
console.log(obj);
let target = { a: 1, b: 1 };
let source1 = { b: 2, c: 2 };
let source2 = { c: 3 };
//参数1被合并的变量,参数2、3需要合并的变量
Object.assign(target, source1, source2); //target = {a:1, b:2, c:3},有同名会覆盖之前的同名属性
//也可以使用ES6的语法实现,更加简单明了
target={...target,...source1,...source2}
console.log(target)
replace()正则表达式,方法用于在字符串中用一些字符替换另一些字符。
//第一个参数:被替换的内容,第二个参数:需要替换的内容
res.replace(/\<img/gi, '<img style="width:100%;height:auto"');
//把<img替换成<img style="width:100%;height:auto"
//g代表全局替换,
//i代表替换的内容不区分大小写
// \代表转义符