当前位置: 首页 > news >正文

做网站教程 简书wordpress评论嵌套样式修改

做网站教程 简书,wordpress评论嵌套样式修改,html5网站开发教程,百度帐号登录入口关于数组拍平 所谓数组拍平,就是按照顺序,把他们全放在一个数组中需要考虑多层级和嵌套的问题来彻底拍平数组 * 实现方案 1 )一般思路, 先实现一级扁平化,然后递归,直到全部扁平 function flat(arr) {const res […

关于数组拍平

  • 所谓数组拍平,就是按照顺序,把他们全放在一个数组中
  • 需要考虑多层级和嵌套的问题来彻底拍平数组
    *

实现方案

1 )一般思路, 先实现一级扁平化,然后递归,直到全部扁平

function flat(arr) {const res = [];arr.forEach(item => {if(Array.isArray(item)) {const flatItem = flat(item); // 递归flatItem.forEach(n => res.push(n));} else {res.push(item);}})return res;
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]

2 )基于 Array的concat方法和递归实现, 优化方案1

function flat(arr) {// 验证 arr 中,还有没有深层数组 [1, 2, [3, 4]]const isDeep = arr.some(item => item instanceof Array);if (!isDeep) return arr; // 已经是 flatern [1, 2, 3, 4]// 如果有深层数组,则拍平,示例:[].concat(1,2,[3,4],5) 返回 [1,2,3,4,5], 利用concat方法的拍平const res = Array.prototype.concat.apply([], arr);return flat(res); // 递归
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]

3 )使用reduce实现

function flat(arr) {return arr.reduce((result, current) => {if (Array.isArray(current)) {return result.concat(flat(current));}return result.concat(current);}, []);
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]

4 )基于String的toString方法和递归实现

function flat(arr) {// 验证 arr 中,还有没有深层数组 [1, 2, [3, 4]]const isDeep = arr.some(item => item instanceof Array)if (!isDeep) return arr // 已经是 flatern [1, 2, 3, 4]// 如果有深层数组,则拍平,转换成字符串拍平const res = arr.toString().split(',').map(val => +val);return flat(res) // 递归
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]

5 )直接使用toString方法即可拍平成字符串,再转成数组即可,方案4的优化版本

function flat(arr) {return arr.toString().split(',').map(val => +val);
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]

6 ) 使用 Array的 flat() 方法, 注意参数的使用,可以用 Infinity 代替具体的层数

function flat(arr) {return arr.flat(Infinity);
}const res = flat( [1, 2, [3, 4, [10, 20, [100, 200]]], 5] );
console.log(res); // [1, 2, 3, 4, 10, 20, 100, 200, 5]
http://www.yayakq.cn/news/135082/

相关文章:

  • 简单网站建设培训中心WordPress后台管理主题
  • 网站备案号申请流程wordpress.怎么备份
  • 中企视窗做网站怎么样产品网页设计教程
  • 检察机关加强网站建设云南软件开发项目管理
  • 做淘宝店和做网站2021年最新热点素材
  • 网站空间如何备份怎样选择网站服务器
  • 2012r2网站建设wordpress 分享实现
  • 网站建设吉金手指专业13做一款小说网站
  • 平顶山网站建设电话网站备案哪个局管
  • 柳州住房城乡建设厅官方网站wordpress如何设置404页面
  • 长春市网站建设网站怎样做网银支付
  • 简述网站开发基本流程图上海模板网站公司
  • 静态网站素材申请网站价格
  • 厦门seo网站龙泉市住房和城乡建设局网站
  • 商务网站怎么做爱站网关键词挖掘查询
  • 哪些网站专门做细胞的电商网名大全
  • 网站开发swf素材有域名了建立免费网站
  • 网络建设网站营销crm系统网站设计
  • 珠海市网站建设怎么样为公司做的图可以上传网站吗
  • 深圳自助企业建站模版北京网站建设服务中心
  • 网站中的冒号百度网站怎么做视频播放器
  • ai特效字体网站广东建设中标网站
  • 网站建设成本明细门店装修设计公司
  • 漳州城乡建设局网站首页东方网景网站建设
  • 公司网站建设需要显示什么廊坊高端网站建设
  • 设计企业的网站杭州网站建设杭州
  • 创口贴设计网站官网网站建设旗帜条幅
  • 四川电脑网站建设织梦模板网
  • php网站开发优化方案郑州做网站公司电话
  • thinkcmf 做企业网站如何做网站访百度联盟