object.keys ,5种js遍历对象属性的方法

本文目录

JS Object.keys的使用点


最近工作上遇到一些问题,我这边需要把从后端拿到的一些数据进行绘图。
这里使用的是绘图方式是echarts-for-react,详细使用方法可以见 echarts-for-reac的使用方法 ,根据这个网址里的component props部分,可以知道ReactEchartsCore组件接受的打点的参数是option,话不多说,直接上例子。

我这边需要对目标数据进行object遍历以及array遍历,最后需要得到的是一个数组。

目标数据的数据结构是:

这里我需要对obj这个数据进行一些操作,目标是得到一个这样的数据:

最后我想得到这样的数据类型。

这里从一开始我就没有思考把这个数据结构转变成数组来进行两次map操作来得到自己想要的结果,我一直都是考虑如何遍历这个对象,之后再遍历该对象里某个属性值的数组。

这里用了Object.keys来遍历对象,但是一开始并不明白怎么用,所以我卡住了很久..
这里拿官方的例子来简单说明一下这个方法怎么使用。

这里可以看到,对象使用了Object.keys()方法变成了一个数组,数组里存储着对象的key值,如果你还需要对该对象key值里的数据进行操作,可以用map来遍历这个存储了key值的数组,来达到目的。

比如,我在绘图的时候,需要拿到一个数组类型给options的series属性,对于我刚开始拿出的例子来说,解决办法就是:

哈哈哈我只是记录一下工作,如果这篇文章没有给你们带来帮助的话....就....点个赞再走吧~

可枚举属性和不可枚举属性的区别


js中每个对象的属性都有一个属性enumerable,这个属性true/false决定了这个属性是否可枚举

1、基本数据类型自带的原型属性不可枚举

2、通过Object.defineProperty()方法指定的enumerable为false的属性不可枚举

Object.keys()返回属性key,但不包括不可枚举的属性

Reflect.ownKeys()返回所有属性key

他们两个都不能遍历原型上的属性

for in

for in一般用于遍历对象的属性;

作用于数组的for in除了会遍历数组元素外,还会遍历自定义可枚举的属性,以及原型链上可枚举的属性;

作用于数组的for in的遍历结果是数组的索引,且都为字符串型,不能用于运算;

某些情况下,可能按照随机顺序遍历数组元素;

for of

ES6中添加的循环语法;

for of支持遍历数组、类对象(例如DOM NodeList对象)、字符串、Map对象、Set对象;

for of不支持遍历普通对象,可通过与Object.keys()搭配使用遍历;

for of遍历后的输出结果为数组元素的值;

java遍历对象属性的名称和值


ES6 一共有 5 种方法可以遍历对象的属性。

(1)for...in

for...in 循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。

(2)Object.keys(obj) ie9

Object.keys 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。

(3)Object.getOwnPropertyNames(obj) ie9

Object.getOwnPropertyNames 返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名。

(4)Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols 返回一个数组,包含对象自身的所有 Symbol 属性的键名。

(5)Reflect.ownKeys(obj)

Reflect.ownKeys 返回一个数组,包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

以上的 5 种方法遍历对象的键名,都遵守同样的属性遍历的次序规则。

​ 其中兼容性最好的是for... in来进行遍历,因为我们通常只需要遍历对象自身拥有的属性 所以使用 Object.prototype.hasOwnProperty() 兼容到ie5.5 方法来排除继承的属性

注意:即使属性的值是 null 或 undefined ,只要属性存在, hasOwnProperty 依旧会返回 true 。

​ 如果不在意兼容性问题,用keys方法,搭配for... of来遍历也不错,、

​ for...of是es6引入的用于遍历可迭代对象的语法,相当于python里的for in。

​ js的for...in别扭的地方在于,遍历数组和对象都是返回的key值,遍历数组是下标值。for...of遍历数组会返回每一个值,跟foreach类似的效果,但是对于对象,只支持实现了迭代器的对象。


如何判断一个对象是不是空对象


方法1: for...in
通过for...in遍历属性,如果是空对象返回false,否则返回true
eg:

当对象中k值不存在的话,得到的k为undefined,即false,那么就是空对象。
方法2: Object.keys()
ES6新增的一个Object.keys()方法
该方法会返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in.. 循环遍历该对象时返回的顺序一致 。即可以通过返回数组的长度来判断是否为空对象,若为空对象,该数组长度为0。
eg:

Object.keys()官网介绍
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 for-in 循环还会枚举其原型链上的属性)。


以上就是关于object.keys ,5种js遍历对象属性的方法的全部内容,以及object.keys 的相关内容,希望能够帮到您。

上一篇 2022年11月27日15时20分23秒
下一篇 2022年11月27日15时22分54秒

相关推荐

  • 小学三年级英语卡片 ,三年级英语朋友卡怎么做图片

    本文目录 1.三年级英语朋友卡怎么做图片 2.小学三年级英语新年贺卡怎么写 3.小学三年级英语单词卡片制作 4.小学英语单词卡片打印 三年级英语朋友卡怎么做图片 使用剪刀或者小刀把纸修剪成相同大小的长方形小纸片,在小纸上写上单词以及中文翻译。这样英语小卡片就做好了。 小学三年级英语新年贺卡怎么写 小学三年级中国传统文化英语贺卡书写格式: 称呼:指送卡人对受贺人的称呼,一般写在卡片的左上方,称呼前可加可不加“to”,如:(To)mydearfriend(To)MrandMrsBlack 贺词:一般写些固定的贺词用语。如:HappyLanternFestival 祝福的具体内容 祝贺人的签名:写在…

    英语知识 2022年12月12日
    11
  • 幼儿英语兴趣班教什么内容 ,幼儿园英语教学内容有哪些

    本文目录 1.幼儿园英语教学内容有哪些 2.幼儿园学什么英语比较好 3.幼儿园小班英语字母A的教案 4.幼儿家长会主要讲哪些内容 幼儿园英语教学内容有哪些   导语:新纲要《幼儿教育指导纲要》并没明确的提到幼儿英语能力的培养,因此,我国目前学龄前儿童英语教育虽然有了一定的发展,但幼儿英语教学活动良莠不齐、效果不甚理想。存在着:教学方法小学化;教学环境落后、教学条件、教学方法匮乏;孩子的心理压力重、使学习英语兴趣不浓;幼儿英语教育缺乏明确的教育理念等不利因素。因此,先让我们熟知英语教学内容。   幼儿园英语教学内容   一、活动课是幼儿园英语课堂教学的主要模式   有效地开展课堂活动是上好幼儿园…

    英语知识 2022年12月12日
    11
  • 幼儿园毕业歌用英语怎么说 ,关于毕业的英文歌词

    本文目录 1.关于毕业的英文歌词 2.关于毕业的英文歌曲名字 3.一首英文毕业歌的歌词是什么 4.英文《毕业歌》歌词翻译中文 关于毕业的英文歌词 1 L2M - goodbye (旋律好听,意境符合毕业。) 2 Chipz - Never Saying Goodbye (好听,适合,男女对唱!稍欢快) 4 When There Was Me and You (歌舞青春)-好听又赞又适合!!! 5 the sound of silence——simon & Garfuckel(《毕业生》原声)——和声很赞(男) 6 auld lang syne——Susan Boyle(如果唱功过关,这个会有多…

    2022年12月12日
    16
  • 常用的英语缩写大全 ,生活中常见的英语缩写单词

    本文目录 1.生活中常见的英语缩写单词 2.常用的英语缩写大全 3.常见的英语缩写00个有哪些单词 4.英语缩写词大全常用 生活中常见的英语缩写单词 常见的英语缩写列举如下: 1、wanna (= want to) 【美国口语】 wanna 是 "want to" 的缩写,意为“想要”“希望” eg: Wanna grab a drink tonight? 今晚喝一杯如何? 2、gonna(= going to)【美国口语】 gonna 是"going to" 的缩写,用在将来时中,一般与 be 动词连用成“be gonna”结构, 但在口语中也有省略be 的情况出现。 eg:Who's go…

    2022年12月12日
    16
  • 德语不定代词加形容词的用法 ,德语特殊形容词变位

    本文目录 1.德语特殊形容词变位 2.不定代词修饰形容词的位置口诀 3.不定代词和不定副词的用法总结 4.德语不定代词加形容词 德语特殊形容词变位 形容词变格:(3种情况) 不定冠词(ein, eine, ein)(一个)、不定代词(kein, keine, kein)(没有),物主代词(mein, dein, sein ... )后的形容词词尾变化: 单数 阳性 阴性 中性 复数 主格 -er -e -es -en 属格 -en -en -en -en 与格 -en -en -en -en 宾格 -en -e -es -en 定冠词(der, die, das)或代词(dieser, jen…

    2022年12月12日
    16
  • 在运动会上的英文 ,我们学校有运动会用英语怎么说

    本文目录 1.我们学校有运动会用英语怎么说 2.学校运动会英语表达 3.他们应该为运动会带些什么呢用英语怎么说 4.学校运动会英语表达 我们学校有运动会用英语怎么说 sports meet 英文发音:[spɔːts miːt] 中文释义:运动会 例句: Just because of the rain, the sports meet was put off. 都是下雨,运动会才延期的。 词汇解析: 1、sports 英文发音:[spɔːts] 中文释义:n.体育运动;(某项)体育运动;(用作友好称呼,尤指对男子)朋友,老兄,哥们儿 例句: My son was a quiet and gen…

    2022年12月12日
    16
  • 小敏翻译成英文 ,小敏的英文怎么写好看

    本文目录 1.小敏的英文怎么写好看 2.请把敏或小敏翻译成英文怎么写 3.小敏家电视剧全集免费观看 4.我叫小敏,用英语怎么说 小敏的英文怎么写好看 Minnie 这个比较接近你名字的中文音,而且也有小的意思 请把敏或小敏翻译成英文怎么写 dear Min 小敏家电视剧全集免费观看 Xiao Min 就是这样的,望采纳 我叫小敏,用英语怎么说 Amy 艾眯 shamy 可以译为小敏。 以上就是关于小敏翻译成英文 ,小敏的英文怎么写好看的全部内容,以及小敏翻译成英文 的相关内容,希望能够帮到您。…

    2022年12月12日
    16
  • 当事宾语的类型 ,如何区分受事宾语和当事宾语呢

    本文目录 1.如何区分受事宾语和当事宾语呢 2.如何区分受事宾语和当事宾语呢《现汉》上说“加字法”但还是很晕 3.英语中的定语从句和宾语从句有什么区别 4.非谓语动词作宾语的四种类型 如何区分受事宾语和当事宾语呢 当事宾语包括断事宾语宾语、于事宾语等: 他是大学生。——————“大学生”是断事宾语,含有动词“是” 我像个局外人。—————“局外人”是断事宾语,含有动词“像” 你在家吗?———————“家”是于事宾语,含有动词“在” 你跟我到超市去一趟。——“超市”是于事宾语,含有动词“到” 根据所含动词,上述句子的宾语类型比较容易判断,但有时句子不这么规矩,就需要加词。其实加的无非就是这些标志…

    2022年12月12日
    16