JavaScript对象扁平化

我们平时肯定遇到过多层嵌套的对象,name如何将它扁平化呢?一起来看看吧!
函数封装如下:

function flatten (obj) {const ans = {}inner(obj, null)function inner (o, prev) {for (let key in o) {if (o[key] instanceof Object) {if (prev === null) {inner(o[key], key)} else {inner(o[key], prev + '.' + key)}} else {if (prev === null) {ans[key] = o[key]} else {ans[prev + '.' + key] = o[key]}}}}return ans}

将一个多层嵌套的对象传入,将返回一个扁平化后的对象。
示例:

const obj = {a: 1,b: { c: 2, d: 3 },e: { f: { g: 4 } },h: { i: { j: 5, k: 6 } }}

对象obj是一个多层嵌套的对象,将其传入flatten函数,将得一个扁平化的对象:

{ a: 1, b.c: 2, b.d: 3, e.f.g: 4, h.i.j: 5, h.i.k: 6 }

以上即为扁平化一个对象的方法。

JavaScript 对象扁平化相关推荐

  1. 我知道的JavaScript--Json对象扁平化

    引子: 在Asp.net mvc 框架下用Ajax方法提交一个复杂的Json 对象到Action方法上, 会出现一些问题,这里我们用Javascript 的方式去解决这个问题,在asp.net mvc ...

  2. js的tree数组对象扁平化思否_JS专题之数组展开

    前言 首先什么是数组展开? 假如现在有这样一个需求:将后台的一个多重 List 数据,展开成一个 List 后,并去重后排序: ["a", "b", [&quo ...

  3. JSON——Json对象扁平化

    一个层级结构很深的json对象 下面的代码是JSON扁平化的帮助类: 声明: 由于层级的json对象中名字可能会有重复,所有扁平化时key值带上了父级的key 使用一个key的list列表,来判断是否 ...

  4. Java对象扁平化的操作

    // 此处使用lombok @Data public class User {private String name;private Wife wife;private List<Childre ...

  5. JavaScript数组扁平化的实现

    数组扁平化 数组扁平化指的是把一个多维数组拆分成一个一维数组. 递归 function flattern(arr){let result = [];for(let i = 0, len = arr.l ...

  6. javascript数组扁平化处理

    最近看jQuery源码$.map方法的实现,返回值利用了一个扁平化处理 return ret.concat.apply( [], ret ) 这有个疑问,不知道为什么不直接返回ret 根据这个返回值处 ...

  7. js的tree数组对象扁平化思否_js 中的tree型数组如何去重与合并?

    假设数据是这样的,不难发现,其中父级roleCode有重复的,子级roleCode也有重复的,如何做到把重复的去掉,同时,又可以把不重复的合并到一起呢? testTreeData: [ { roleC ...

  8. JavaScript将扁平化数据转为树形结构

    首先给你一个数组list如下: var arr = [{ name: '权限管理', id: 1, parentId: 0 },{ name: '角色管理', id: 1000, parentId: ...

  9. Javascript对象进行扁平化处理

    Javascript对象进行扁平化处理 笔主在经过多次的笔试中,发现经常会遇到对象扁平化处理的编程题,但是在笔试过程中,脑子一片空白,以至于没有平常心的去对待问题的本质. 扁平化处理简而言之就是对对象 ...

最新文章

  1. 几种检查调试CSS布局的有效方法
  2. JavaScript入门【JavaScript专题1】
  3. 唔... 突然发现进入推荐博客了
  4. python 树结构三方包_python第三方库---BeautifulSoup库(搬运)
  5. 一个简单的从windows系统往AWS上直接拷贝文件的脚本
  6. arccatalog点要素显示不完_如果你读不完显示屏说明书,至少读完这几句话吧
  7. 435. 无重叠区间(贪心经典题+思路+详解)
  8. HashMap get不出对象时出错 解决
  9. 投资基金融资理财服务企业网站源码 织梦dedecms模板
  10. Spring技术原理之Spring AOP
  11. 推荐10个非常不错的JavaScript移动开发框架
  12. IDEA右键新建时没有Java Class选项
  13. 《图书管理系统》软件需求说明书
  14. C#试玩程序设计试题——定向越野(迷宫)
  15. 已经开源的阿里云播放器的播放内核
  16. 大学计算机高海波目录,《大学计算机基础》TOC课程教学大纲(定稿3ok).doc
  17. 爪哇国新游记之十三----XML文件读写
  18. 【GIS小白学习笔记】Excel加至Arcgis坐标分带选择
  19. 和弦学习笔记1顺阶和弦
  20. linux显示分区命令,在Linux中查看分区表的4种方法

热门文章

  1. SMC 真空发生器 ZK2A 电气接线接气方法
  2. 页游与端游合体 微端网游或成为行业风向标
  3. 禁忌搜索算法实现经典VRP问题
  4. 身份证识别(极速数据接口对接)
  5. 有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱(n <= 100000),有多少中组合可以组成n分钱?
  6. 在线ps(在线photoshop)编辑器 在线图像编辑器
  7. 卷积网络的平移不变性
  8. 长安大学电子计算机专业怎样,长安大学VS重邮,计算机专业哪家强?学科实力和高考录取分不同步...
  9. 漫画:如何破解MD5算法?
  10. HTML5页面,用JS 禁止弹出手机键盘