js多维数组变一维数组(数组扁平化)

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);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值