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

php如何制作网站网站建设的内容

php如何制作网站,网站建设的内容,wordpress get_users,vis设计机构关于数组拍平 所谓数组拍平,就是按照顺序,把他们全放在一个数组中需要考虑多层级和嵌套的问题来彻底拍平数组 * 实现方案 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/696913/

相关文章:

  • 什么软件能创建网站移动网站建站
  • 建网站来做什么效果图参考网站
  • 佛山网站设计特色阿里巴巴网页
  • 医院门户网站模板下载安徽省住房和城乡建设厅网站域名
  • 重庆网站排名外包关于网站建设的画册
  • 资源共享课程网站开发毕业设计上海外贸50强企业
  • 房产交易网站建设策划案科技攻关要坚持什么导向奔着最紧急最紧迫的问题去
  • 什么网站做视频最赚钱天津大型网站设计公司
  • 移动端网站开发介绍申请免费网站域名
  • 设计资料网站电子商务网站建设试卷及答案
  • 网站建设排名优化公司哪家好公司的公关
  • 四川网站建设价格建盏十大高端客户
  • 做网站开发的提成多少钱网站专题策划页面怎么做
  • 怎样才能创建自己的网站正规代运营公司排名
  • 网站创建设计SEO优化象客广安网站制作设计
  • 个人内网网站建设随州网站设计开发服务
  • 建网站公司锦程网页版游戏单机游戏
  • 建设一个网站要多少费用网站封装
  • 一千个长尾关键词用一千个网站做如何申请网站备案号
  • 在家百度统计网站打不开免费友情链接网页
  • 沧州网站网站建设网站制作报价开
  • 胶州市城乡建设局网站一个网站如何做桌面快捷链接
  • 刹车片图纸网站建设科技让生活更美好作文450字
  • 汽车网站模板下载建一个网站需要多长时间
  • mvc5网站开发之美wordpress 教 模版
  • 网站建设费用入账做网站用
  • 网站注册备案查询高清的广州网站建设
  • html5网站建设思路江浦做网站
  • 万网网站建设的子分类能显示多少个哪些网站做推广
  • 微信小程序网站建设方案外发加工网app