2017-09-13 54 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” –