JS - 无法读取未定义的属性"包含"

Fol*_*y.H 3 javascript typescript ecmascript-6

我想检查data.objectId数组中是否已存在msgArr.为此我运行下面的代码:

var exists = msgArr.objectId.includes(data.objectId);

if(exists === false){
   msgArr.push({"objectId":data.objectId,"latLont":data.latLont,"isOnline":data.isOnline});
}
Run Code Online (Sandbox Code Playgroud)

该数组如下所示:

var msgArr = [
  {isOnline:true,latLont:"123",objectId:"on0V04v0Y9"},
  {isOnline:true,latLont:"1",objectId:"FpWBmpo0RY"},
  {isOnline:true,latLont:"48343",objectId:"Qt6CRXQuqE"} 
 ]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法读取未定义的属性"包含"

Nit*_*mer 12

正如评论所说:javascript数组对象没有属性objectId.
查看此数组中的对象,很明显它们已经拥有它,因此要检查某个元素是否存在,您可以使用Array.prototype.some方法执行此操作:

var exists = msgArr.some(o => o.objectId === data.objectId);
Run Code Online (Sandbox Code Playgroud)