抛弃 ES7 的 array.prototype.includes(),使用 ES8 的 Object.values()

在前端开发中,数组是我们最常用的数据类型之一。而在 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