20210831 - Array.includes() 无法用于判断对象元素
2021-08-31 00:00:00

一个React练习:编写通讯录

所有联系人的姓名和电话号码作为object放到一个数组里

在给联系人去重的时候,发现includes无法正确判断数组内是否包含某个类型为object的element

关于Array.prototype.includes

Array.prototype.includes() - JavaScript | MDN

Stackoverflow:

stackoverflow上说includes判断相等的原理是===(strict equality operator),比较的是object的reference而不是value type。

所以Array.includes()无法用于判断数组中是否存在某个对象。

解决方法

  • 先在每个对象元素中存储一个id属性,并且对象元素的id都是唯一值。再用some和every方法(不过这种情况需要有个外来的输入值在未加入数组时就与数组内的各元素作对比,而不是在已有的数组中去重)凭借obj.id判断。