2017-09-13 55 views
0

你好,我有朋友陣列this.venner訪問數組值 - AngularJs

enter image description here

我也有陣列稱爲this.convensations和輸出是一樣this.venner, 但這裏的ID叫partner_id(PARTNER_ID輸出爲54312,54345 ,54346)

現在我想比較,如果this.convensation partner_idthis.venner id如果是相同

是這樣的:

if (this.convensation in this.venner) { 
    //do something 
} else { 
    // do something 
} 

回答

1

可以使用Array.prototype.some()方法。

如果包裹在它自己的checkExistsInArray功能...

function checkExistsInArray(arr, compareObj){ 
    return arr.some(function(obj){ 
    return compareObj[Object.keys(compareObj)] === obj[Object.keys(compareObj)]; 
    }); 
} 

...那麼你應該能夠通過傳遞一個自定義的比較對象來使用,對於這兩種陣列。

var friendExists = checkExistsInArray(this.venner, { id: this.friend }); 

var conversationExists = checkExistsInArray(this.conversations, { partner_id: this.friend }); 

旁註:正如其他人所指出的那樣,有庫在那裏很容易地做這樣的事情。我知道的兩名主要球員是Underscore.jsLodash。即使你選擇不使用它們,在尋找一點靈感的時候,看看它們如何在引擎蓋下工作有時也會有所幫助。

1

您可以使用過濾器,

var result = this.venner.filter(t=>t.id === '54312'); 
if (result.length >0) { 
    //do something 
} else { 
    // do something 
} 
+0

我編輯了我的問題,請參閱,如果你能幫助我。 –

0

簡單就可以解決這個使用Undescore.js _.find功能

if (.find(this.friend, {"id":this.venner) { 
    //do something 
} else { 
    // do something 
} 
+0

謝謝你的回答,我更新了我的問題,看看你能否幫助我。 –

+0

你可以評論你的數組 – Dushyantha

+0

這裏是我的第一個數組(this.venner)和第二個數組this.convensations的截圖是this.venner但id在這裏稱爲「partner_id」 –