广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Javascript如何实现对象扁平化实例详解
  • 436
分享到

Javascript如何实现对象扁平化实例详解

js对象扁平化处理对象扁平化 js扁平化js 2022-11-13 19:11:31 436人浏览 薄情痞子
摘要

目录前言例题详情扁平化代码实现总结前言 数组扁平化相信大家已经耳熟能详了,在被面试官问到如何实现数组扁平化你就偷着乐吧,但是相信有不少大佬在面试一些国内顶尖的大厂时,被面试官问到如何

前言

数组扁平化相信大家已经耳熟能详了,在被面试官问到如何实现数组扁平化你就偷着乐吧,但是相信有不少大佬在面试一些国内顶尖的大厂时,被面试官问到如何实现对象扁平化,笔者在学习过程中对此也感兴趣,让我们一起看看如何实现对象扁平化吧

例题详情

// 实现一个 flatten 函数,实现如下的转换功能
const obj = {
  a: 1,
  b: [1, 2, { c: true }],
  c: { e: 2, f: 3 },
  g: null,
};

// 转化为扁平化之后的对象
let objRes = {
  a: 1,
  "b[0]": 1,
  "b[1]": 2,
  "b[2].c": true,
  "c.e": 2,
  "c.f": 3,
  g: null,
};

扁平化

扁平化概念的核心意义是:去除冗余、厚重和繁杂的装饰效果。而具体表现在去掉了多余的透视、纹理、渐变以及能做出3D效果的元素,这样可以让“信息”本身重新作为核心被凸显出来。同时在设计元素上,则强调了抽象、极简和符号化。

对象实现扁平化,从需要转化的结果可以看出,我们需要对整个对象进行遍历,对象里面嵌套对象或者数组都需要扁平化,将嵌套的内层对象的属性值依次输出。

我认为本题的核心就在于传入对象的 key 和 value,对value进行递归遍历,找到所有嵌套的属性值。

代码实现

function flattenObj(obj) {
  let res = {}
  for (let key in obj) {
    if (typeof obj[key] === 'object' && obj[key] !== null) {  
      flatten(res,obj[key],`${key}`)
    } else {
      res[key] = obj[key]
    }
  }
      

  function flatten (res, obj ,keyname) {
    for(let key in obj) {
      if (typeof obj[key] === 'object' && obj[key] !== null) {  
        flatten(res,obj[key],`${keyname}.${key}`)
      }else {
        res[`${keyname}.${key}`] = obj[key]
      }
    }
  }
  return res
}

实现思路:首先声明一个结果对象,遍历我们需要扁平化的对象,判断遍历到的 key 的 value 是不是对象或者数组,代码部分我使用的是typeof方法,来判断是基础类型还是引用类型 (使用typeof方法可以可以准确判断出除了null之外的所有的基本数据类型(注:typeof null // "object" 是javascript这门语言的历史遗留问题,需要记忆)),满足(typeof obj[key] === 'object' && obj[key] !== null)时,说明此时我们遍历到的value是一个引用类型,我们需要将她身上的所有属性都挂到结果对象身上去,所以我又定义了一个用来遍历深层属性的函数flatten; 如果是原始类型,那就将原对象身上的key value 直接挂载到结果对象res身上,flatten的功能也是判断是否还有深层嵌套的对象或数组,用递归遍历来实现扁平化。

运行结果:

总结

到此这篇关于Javascript如何实现对象扁平化的文章就介绍到这了,更多相关js对象扁平化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Javascript如何实现对象扁平化实例详解

本文链接: https://www.lsjlt.com/news/170686.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Javascript如何实现对象扁平化实例详解
    目录前言例题详情扁平化代码实现总结前言 数组扁平化相信大家已经耳熟能详了,在被面试官问到如何实现数组扁平化你就偷着乐吧,但是相信有不少大佬在面试一些国内顶尖的大厂时,被面试官问到如何...
    99+
    2022-11-13
    js对象扁平化处理 对象扁平化 js 扁平化js
  • java如何实现嵌套对象转大map(扁平化)
    目录嵌套对象转大map(扁平化)java:JSON扁平化和去扁平化1、扁平化数据(网上找的一json大串)2、maven依赖3、扁平化4、去扁平化嵌套对象转大map(扁平化) 部分业...
    99+
    2022-11-13
  • JavaScript数组实现扁平化四种方法详解
    目录1. 常规递归法2. reduce方法3. 扩展运算符实现4. split和toString共同处理数组的扁平化就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只...
    99+
    2022-11-13
    JS数组扁平化 JS数组
  • JavaScript中如何使用reduce实现数组扁平化
    这篇文章主要为大家展示了“JavaScript中如何使用reduce实现数组扁平化”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中如何使用r...
    99+
    2022-10-19
  • JavaScript中如何使用flat()实现数组扁平化
    小编给大家分享一下JavaScript中如何使用flat()实现数组扁平化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数组扁平...
    99+
    2022-10-19
  • js如何实现扁平化数组
    这篇文章主要介绍了js如何实现扁平化数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。扁平化数组在原型 Array 上有一个方法 flat,可以从一个数组的数组中制作一个单一...
    99+
    2023-06-27
  • JavaScript面试之如何实现数组拍平(扁平化)方法
    目录1 什么叫数组拍平? 2 JS标准库中的数组拍平方法 3 实现一个flat方法 3.1 如何遍历一个数组 3.2 如何判断元素是否为数组 3.3 递归 3.4 初步实现flat方...
    99+
    2022-11-12
  • JavaScript中如何使用正则实现数组扁平化
    这篇文章给大家分享的是有关JavaScript中如何使用正则实现数组扁平化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数组扁平化是指将一个多维数组变为一个一维数组const&n...
    99+
    2022-10-19
  • 如何理解javascript中的实例化对象
    本篇内容介绍了“如何理解javascript中的实例化对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JavaScript中如何使用函数递归实现数组扁平化
    小编给大家分享一下JavaScript中如何使用函数递归实现数组扁平化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数组扁平化是...
    99+
    2022-10-19
  • JavaScript中如何使用正则表达式实现数组扁平化
    这篇文章主要介绍了JavaScript中如何使用正则表达式实现数组扁平化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组扁平化是指将一个多...
    99+
    2022-10-19
  • php将xml转化对象的实例详解
    XML文件 $xml= "123456"; 将文件转换成对象 $objectxml = simplexml_load_string($xml); 将对象转换个JSON ...
    99+
    2022-11-12
  • Json转化为Java对象的实例详解
    Json转化为Java对象的实例详解问题:前后端数据交互时,经常会遇到Json串与Java对象转化的问题,有的Java对象中还包含了List对象等。解决方案: 引入 json-lib包,Maven坐标如下:<dependency>...
    99+
    2023-05-31
    json java对象 ava
  • jquery如何实例化对象
    本文小编为大家详细介绍“jquery如何实例化对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何实例化对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。jQuery是一款常用的 JavaScri...
    99+
    2023-07-06
  • java如何实例化对象
    在Java中,可以使用`new`关键字实例化对象。实例化对象的一般步骤如下:1. 创建一个类:首先需要定义一个类,该类描述了对象的属...
    99+
    2023-08-24
    java
  • Java中对象的序列化详解及实例
     Java中对象的序列化详解及实例把java对象转化为字节序列的过程称为对象的序列化。把字节序列恢复为java对象的过程称为对象的反序列化。对象序列化的用途:把对象的字节序列永久的保存到硬盘上,通常存放在一个文件中2.在网络上传送...
    99+
    2023-05-31
    java 序列化 中对
  • JavaScript如何实现对象和数组转化
    这篇文章将为大家详细讲解有关JavaScript如何实现对象和数组转化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对象和数组转化Object.keys({name:&#...
    99+
    2022-10-19
  • java实例化对象时报错如何解决
    当在Java中实例化对象时遇到错误,可以尝试以下几种解决方法:1. 检查类的构造函数:确保类中存在无参构造函数或者带有正确参数的构造...
    99+
    2023-10-10
    java
  • php是如何实例化对象的
    这篇文章主要介绍“php是如何实例化对象的”,在日常操作中,相信很多人在php是如何实例化对象的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php是如何实例化对象的”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • Python面向对象实现数据分析的实例详解
    目录案例需求分析实现步骤代码实例1实例2实例3可视化数据集案例 某公司,有2份数据文件,现需要对其进行分析处理,计算每日的销售额并以柱状图表的形式进行展示。   需求...
    99+
    2023-01-03
    Python 面向对象 数据分析 Python数据分析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作