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

阅读时长 4 分钟读完

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

纠错
反馈