2017-09-13 5 views
0

こんにちは私は持っている私は、配列がthis.convensationsと出力のようなthis.venner、 ですが、ここでidはpartner_id(PARTNER_ID出力は、54345 54312あると呼ばれると呼ばれているthis.vennerアクセスアレイ値 - AngularJs

enter image description here

友人の配列、54346)

今私はthis.convensation partner_idthis.venner id場合は

同じであれば、比較したいですこのような210

何か:

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

答えて

1

を解決することができ、フィルタを使用することができます。

あなたはそれ自身の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 }); 

側注:他の人が指摘したように、容易にこの種のものを行うには、そこにライブラリがあります。私が知っている主なプレイヤーの2人はUnderscore.jsLodashです。あなたがそれらを使用しないことを選択したとしても、ちょっとしたインスピレーションを探しているときにボンネットの下でどのように動作するかを見ると役立つことがあります。

1

あなたは

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

私は私の質問を編集しました。あなたが私を助けることができるなら、見てください。 –

0

単にあなたがArray.prototype.some()メソッドを使用することができ、この使用Undescore.js _.find機能

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

あなたの答えをありがとう、私は私の質問を更新し、あなたが私を助けることができるかどうかを参照してください。 –

+0

あなたの配列にコメントすることができます – Dushyantha

+0

ここに私の最初の配列(this.venner)と2番目の配列this.convensationsのスクリーンショットはthis.vennerのようなものですが、ここでは "partner_id" –