M酷的前端Blog
侧边栏壁纸
博主头像
M酷博主等级

一帆风顺 ⛵️⛵️⛵️

  • 累计撰写 45 篇文章
  • 累计创建 40 个标签
  • 累计收到 463 条评论
  • 栏目
    • 首页
    • 文章
    • 标签
    • 动态
      • Vue 源码系列
        • UE 4.2.7
        • UE 5
      • 学习记录
    • 图库
    • 留言
    • 友链
    • 关于
标签搜索
  • go
  • React
  • 新手引导
  • vue3
  • 收藏整理
  • style-guideline
  • yarn
  • halo-blog
  • halo-theme
  • joe2.0
  • halo
  • typescript
  • webpack
  • vite
  • nodejs
  • git
  • nextTick
  • keep-alive源码
  • keep-alive
  • vue源码
  • 节流
  • 防抖
  • throttle
  • debounce
  • lodash
  • webp
  • Echart问题
  • Echart
  • el-table
  • JSON
  • VSCode
  • github
  • npm
  • vuex
  • vantui
  • javascript
  • vue
  • elementui
  • 后端
  • 前端

目 录CONTENT

文章目录
前端技术

对象不支持"flat"属性或方法

M酷
M酷
2021-02-09 / 0 评论 / 6 点赞 / 3,507 阅读 / 1,299 字 / 正在检测是否收录...
广告 广告

背景

最近项目中有一个级联的筛选组件,出于性能考虑,减少接口请求,后端把相关数据和映射直接以json的形式全部给我了,让我在前端来做级联,点击时不再请求接口。这样前端逻辑就一下子复杂起来了,基本上会涉及到数组和对象的常见处理方法,比如求数组的交集、并集、去重、浅/深拷贝等等。如图:

过程

在书写逻辑过程中,为了减少代码量,我还用到了Array对象的flat()方法,用于将指定数组扁平化,然后再做去重等操作。自测没发现什么问题就直接放测试环境了。可惜测试测的真的很仔细,一上来就是IE11,说为什么在IE下面筛选点不动,我知道肯定是报错了。
通过IE的开发者工具,发现了一条报错,对象不支持“flat”属性或方法
又是IE,真是烦人,webpack打包的时候,babel竟然没编译这个api,时间有限,我直接百度了,发现确实是flat不兼容导致的,那么直接写个shim引入一下即可。

结果

😄以下代码引入即可解决浏览器不支持flat的问题。

if (!Array.prototype.flat) {
  Array.prototype.flat = function (count) {
    let c = count || 1;
    let len = this.length;
    let exe = [];
    if (this.length == 0) return this;
    while (c--) {
      let _arr = [];
      let flag = false;
      if (exe.length == 0) {
        flag = true;
        for (let i = 0; i < len; i++) {
          if (this[i] instanceof Array) {
            exe.push(...this[i]);
          } else {
            exe.push(this[i]);
          }
        }
      } else {
        for (let i = 0; i < exe.length; i++) {
          if (exe[i] instanceof Array) {
            flag = true;
            _arr.push(...exe[i]);
          } else {
            _arr.push(exe[i]);
          }
        }
        exe = _arr;
      }
      if (!flag && c == Infinity) {
        break;
      }
    }
    return exe;
  };
}

6
广告 广告
  • 6
    1. qrcode alipay
    2. qrcode weixin

评论区

博主栏壁纸
22 分类数
45 文章数
463 评论数

文章目录

相关文章
  • Vue3 + Vite2 + ElementPlus + TS 项目常见问题
  • 如何判断浏览器是否支持 webp 图片?
  • 面向对象编程及继承
  • el-select下拉框在页面滚动时位置错乱
  • 10个很棒的JS字符串技巧

玻璃钢生产厂家商场美陈花盆云浮玻璃钢卡通雕塑价格易清洁玻璃钢雕塑厂家实力雄厚达摩玻璃钢雕塑国庆商场美陈图片河南通道商场美陈厂家供应西安玻璃钢雕塑企业玻璃钢卡通雕塑特色大型玻璃钢花盆模具制作内江玻璃钢卡通雕塑玻璃钢雕塑成本分析佛山吉林玻璃钢雕塑商场美陈在义务哪里买九台区玻璃钢雕塑工程施工电话玻璃钢浮雕景观雕塑价格黄山环保玻璃钢雕塑市场常州商场新春美陈商场创意商业美陈创作广东工业玻璃钢雕塑摆件惠济区景观玻璃钢雕塑金华玻璃钢海豚雕塑价格夏季商场美陈装饰方案售卖商场美陈童话人物情侣抽象玻璃钢雕塑上海正宗玻璃钢雕塑制造厂家淮北玻璃钢雕塑设计玻璃钢雕塑有什么性能鹤岗市玻璃钢雕塑定制郑州景观玻璃钢雕塑厂合肥玻璃钢雕塑厂家信息推荐香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化