ES对象方法
2018-12-24 本文已影响0人
大鸿先生
ES7
Object.keys(obj)
传入一个对象,返回一个包含对象的可枚举属性和方法的名称的、所有元素为字符串的数组。
ES6之后传入的不是对象也可以强制转换为对象,而在ES5中,如果传入的不是对象会报错:xx is not an object。
ES6中传入的不是对象的具体返回值:
传入字符串,返回索引值。
传入数组,返回索引值。
传入数组,返回索引值构造函数,返回空数组或者属性名
通俗而不严谨的说,就是返回一个由对象的属性名/方法名组成的数组。
一个正常的code狗在脑子还算清醒的情况下注意:keys 方法仅返回可枚举属性和方法的名称;若要返回可枚举和不可枚举属性和方法的名称,可以使用Object.getOwnPropertyNames()函数。
那么问题来了,学以致用嘛,当你想遍历对象的所有值时,该怎么做?
遍历对象的所有值诶意外发现了一种把对象转换成数组的方法啊哈哈 ~
好了,这种方法看起来很好用,但是ES7已经老了,让我们试试看如果使用ES8如何操作:
ES8
Object.values()
遍历对象的所有值这两种方式得到的结果是一致的,也就是说Object.values()帮我们省去了遍历key,并根据这些key获取value的步骤,可以直接得到对象的键值组成的数组。
那么也就是这两种方法,通俗而不严谨的,我们可以理解成,Object.keys()可以帮我们获取对象键名组成的数组,Object.values()可以帮我们获取对象键值组成的数组,真的超级方便了。
ES8还为我们提供了一种方法,用来返回一个给定对象自身可枚举属性的键值对的数组。
Object.entries()
例一 例二也是超级贴心了~