首页前端开发JavaScriptJS数组降维的几种方法详解

JS数组降维的几种方法详解

时间2024-02-01 08:40:03发布访客分类JavaScript浏览309
导读:收集整理的这篇文章主要介绍了JS数组降维的几种方法详解,觉得挺不错的,现在分享给大家,也给大家做个参考。 二维数组降维使用数组实例方法concat和ES6扩展运算符降维let arr=[...
收集整理的这篇文章主要介绍了JS数组降维的几种方法详解,觉得挺不错的,现在分享给大家,也给大家做个参考。

二维数组降维

使用数组实例方法concat和ES6扩展运算符降维

let arr=[1,2,[3,4],5];
    let arr1=[].concat(...arr);
    //先使用扩展运算符打散最外边的数组,concat自带打散粘合数组的功能console.LOG(arr1);
    // [1, 2, 3, 4, 5]//ES6之前用apply打散数据的兼容性写法VAR arr2=[1,2,[3,4],5];
    var arr3=[].concat.apply([],arr2);
    console.log(arr3);
    // [1, 2, 3, 4, 5]

多维数组降维

递归降维

//几种利用数组函数递归降维的写法//some&
concat//利用some检查数组中是否含有数组有就在调用自己进行降维function fun(arr){
      arr=[].concat(...arr);
   //再检查降维后的数组中是否还包含子数组  let hasArray=arr.some(function(elem){
          return Array.isArray(elem);
  }
)  if(hasArray){
     //如果包含子数组      arr=fun(arr);
//就只能再降维一次,直到检查不再包含子数组为止  }
        return arr;
}
    ;
    //foreach&
instanceof//对数组每个元素进行判断看其是不是数组是在继续调用自己,不是把他放进提前准备的空数组中 function fun2(arr){
      let ret = [];
  let toArr = function(arr){
    arr.forEach(function(ITem){
          item instanceof Array ? toArr(item) : ret.push(item);
    }
    );
  }
      toArr(arr);
      return ret;
}
    //reduce&
concat//最后准备一个空数组,看传入数组中的每一项是不是数组是就重新调用自己不是就用concat汇总到空数组中function fun3(sarr){
        return sarr.reduce((PRe,val)=>
{
        return Array.isArray(val) ? pre.concat(fun3(val)): pre.concat(val)    }
,[])}
    

Array.prototyPE.flat()

ES10 新增Array.prototype.flat(),用于将嵌套的数组打散,变成一维的数组。该方法返回一个新数组,对原数据没有影响。

var arr1 = [1, 2, [3, 4]];
    arr1.flat();
     // [1, 2, 3, 4] var arr2 = [1, 2, [3, 4, [5, 6]]];
    arr2.flat();
    // [1, 2, 3, 4, [5, 6]] var arr3 = [1, 2, [3, 4, [5, 6]]];
    arr3.flat(2);
    // [1, 2, 3, 4, 5, 6] //使用 Infinity 作为深度,展开任意深度的嵌套数组arr3.flat(Infinity);
     // [1, 2, 3, 4, 5, 6]

到此这篇关于JS数组降维的几种方法的文章就介绍到这了,更多相关JS数组降维内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • js最全的数组的降维5种办法(小结)
  • JS数组降维的实现Array.prototype.concat.apply([], arr)
  • JavaScript实现数组降维详解

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: vue3.0路由自动导入的方法实例下一篇:JavaScript中常用的几种字符串方...猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: JS数组降维的几种方法详解
本文地址: https://pptw.com/jishu/595172.html
asp.net显示相同数字相乘的结果,直到数值大于150为止 vue3.0路由自动导入的方法实例

游客 回复需填写必要信息