replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
obj.find(item=>{item == 1}) 查找obj中的值 并返回 记得return 单行可省略
obj.findIndex(item=>{item == 1}) 查找obj中值的index 并返回 记得return 单行可省略
es6数组去重
const set = new Set([1,2,3,4,5,4,4,4,4,6,6,7,1,2,1,2,1,2,9,8,9,9,9]);
console.log(Array.from(set))
电话号码加手机号码正则验证
let phone = 0713-12345678 // 或者 17612345678
if (/^((0\d{2,3}-\d{7,8})|(1[356789]\d{9}))$/.test(phone) == false) {
console.log("请输入正确的号码")
}
newDate % 100; // 两位随机数
newDate % 1000; // 三位随机数
newDate % 10000; // 四位随机数...依次类推
Array.slice(0) 实现数组浅拷贝
let arr = [1,2,3,4,5];
let reArr = arr.slice(0)
console.log(reArr) // [1,2,3,4,5]
数组扁平化 (将多维数组变成一维数组)
let arr = [1, [2, [3, [4, 5]]], 6];
let str = jsON.stringify(ary);
(1)直接处理
arr.flat(Infinity);
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。 其中,depth指定要提取嵌套数组的结构深度,默认值为1。
但使用 Infinity 作为深度,展开任意深度的嵌套数组
注意:flat和flatMap方法为ES2019(ES10)方法,目前还未在所有浏览器完全兼容。
(2) 使用正则找到【】去除 然后转数组 (下面两种都可以)
1.
str.replace(/(\[\]))/g, '').split(',');
2.
str = str.replace(/(\[\]))/g, '');
str = '[' + str + ']';
var ary = jsON.parse(str);
(3)递归处理
let result = [];
fn (ary) {
for(let i = 0; i < ary.length; i++) }{
let item = ary[i];
if (Array.isArray(ary[i])){
fn(item);
} else {
result.push(item);
}
}
}
(4)扩展运算符
while (ary.some(Array.isArray)) {
ary = [].concat(...ary);
}