JS中,什么是数组扁平化?

论坛 期权论坛 期权     
上党本地帮   2019-7-15 09:29   3057   0

        工作中后端哥哥给你传过来的数据乱七八糟的,你的心情会不会很抓狂呢?所以我来给大家分享一下什么是扁平化,数组扁平化;以及他的处理方法;
        扁平化其实就是减少复杂性装饰,使其事物本身更简洁、简单,突出主题。
        数组扁平化,对着上面意思套也知道了,就是将一个复杂的嵌套多层的数组,一层一层的转化为层级较少或者只有一层的数组。


  1. [[[{'city':'北京'},{'city':'上海'}],{'city':'徐州'}],{'city':'南京'}]
复制代码

        所以就需要用到数据扁平化,把数据改成可以正常使用时候的代码!!直接上代码!
  1. function flatten(arr){
复制代码
  1.   var result = [];
复制代码
  1.   arr.forEach(item => {
复制代码
  1.     if(Array.isArray(item)){
复制代码
  1.       result.push(...flatten(item));
复制代码
  1.     }else{
复制代码
  1.       result.push(item);
复制代码
  1.     }
复制代码
  1.   });
复制代码
  1.   return result;
复制代码
  1. }
复制代码
  1. [/code][code]var arr = [[[{'city':'北京'},{'city':'上海'}],{'city':'徐州'}],{'city':'南京'}];
复制代码
  1. [/code][code]console.log(flatten(arr));
复制代码
结果:

可以看到修改后的数据结构很整洁,我们又可以开开心心写代码了。

最后总结一下:数组扁平化其实就是利用元素迭代加上元素拼接+递归diaoong 来对数组进行处理,达到多层数组转为单层数组;

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP