在前端开发中,数组是我们最常用的数据类型之一。而在 ES7 中,为了方便地判断一个数组中是否包含某个元素,添加了 array.prototype.includes()
方法。但是,随着 ES8 的到来,我们可以使用更加强大的 Object.values()
方法来替代 array.prototype.includes()
。
ES7 的 array.prototype.includes()
在 ES7 中,新增了 array.prototype.includes()
方法,用于判断一个数组是否包含某个元素。它的语法如下:
------------------------------ -----------
其中,searchElement
表示要查找的元素,fromIndex
表示开始查找的位置。如果省略 fromIndex
,则默认从数组的第一个元素开始查找。
使用 array.prototype.includes()
方法可以方便地判断一个数组中是否包含某个元素。例如:
----- --- - --- -- -- -- --- ----------------------------- -- ---- ----------------------------- -- -----
ES8 的 Object.values()
在 ES8 中,新增了 Object.values()
方法,用于返回一个对象中所有的值。它的语法如下:
------------------
其中,obj
表示要返回值的对象。
使用 Object.values()
方法可以方便地获取一个对象中所有的值。例如:
----- --- - - -- -- -- -- -- - -- -------------------------------- -- --- -- --
为什么要使用 Object.values()?
虽然 array.prototype.includes()
方法可以方便地判断一个数组中是否包含某个元素,但是它只适用于数组这种数据类型。而在实际开发中,我们可能会遇到需要判断一个对象中是否包含某个值的情况。
例如,我们有一个包含多个用户信息的对象数组,每个用户信息包含了用户名和密码:
----- ----- - - - --------- -------- --------- ----------- -- - --------- -------- --------- ----------- -- - --------- -------- --------- ----------- - --
如果我们想要判断某个用户名是否在这个数组中,使用 array.prototype.includes()
方法就不太方便了。而使用 Object.values()
方法,我们可以将每个用户信息对象转换为一个值数组,然后再使用 array.prototype.includes()
方法进行判断:
----- --------- - -------------- -- --------------- ----------------------------------------- -- ---- ----------------------------------------- -- -----
可以看到,使用 Object.values()
方法可以方便地将对象转换为值数组,然后再使用 array.prototype.includes()
方法进行判断,非常方便。
总结
在前端开发中,数组是我们最常用的数据类型之一。在 ES7 中,为了方便地判断一个数组中是否包含某个元素,新增了 array.prototype.includes()
方法。但是,在实际开发中,我们可能会遇到需要判断一个对象中是否包含某个值的情况。此时,可以使用 ES8 新增的 Object.values()
方法,将对象转换为值数组进行判断。使用 Object.values()
方法可以方便地获取一个对象中所有的值,非常方便实用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65c81e7dadd4f0e0ff1fd4d9