簡體   English   中英

JavaScript錯誤:無法讀取未定義的屬性“包含”

[英]JavaScript error: Cannot read property 'includes' of undefined

我想檢查數組msgArr data.objectId已存在msgArr 為此我運行下面的代碼:

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

if(exists === false){
   msgArr.push({"objectId":data.objectId,"latLont":data.latLont,"isOnline":data.isOnline});
}

該數組如下所示:

var msgArr = [
  {isOnline:true,latLont:"123",objectId:"on0V04v0Y9"},
  {isOnline:true,latLont:"1",objectId:"FpWBmpo0RY"},
  {isOnline:true,latLont:"48343",objectId:"Qt6CRXQuqE"} 
 ]

我收到以下錯誤:

無法讀取未定義的屬性“包含”

正如評論所說:javascript數組對象沒有屬性objectId
查看此數組中的對象,很明顯他們擁有它,因此要檢查某個元素是否存在,您可以使用Array.prototype.some方法執行此操作:

var exists = msgArr.some(o => o.objectId === data.objectId);

它告訴您,您正在嘗試訪問未定義對象上的屬性。 msgArr對象根本沒有屬性objectID ,這意味着它是未定義的 由於這不存在,因此無法使用任何類型的includes屬性。

您需要的是訪問數組中的對象,而不是數組本身。 msgArr[0].objectID這樣的東西會引用一個實例化的對象。 您甚至可以使用數組函數根據其帶有過濾器函數的objectID來檢查是否存在某些內容。

首先戴夫牛頓是對的。 數組沒有objectId!

也許你的“數組”不是真正的數組。 也許它是一個包含數組的對象...我不知道......但在這種情況下,你必須編寫類似這樣的代碼:

var exist = msArr["objectId"] !== undefined

如果“msArr”具有名為“objectId”的屬性/字段,則“存在”是布爾值,其中包含信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM