访问数组值 - AngularJs

时间:2017-09-13 08:55:22

标签: angularjs

您好我有一些朋友this.venner

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
}

3 个答案:

答案 0 :(得分:1)

您可以使用过滤器,

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

答案 1 :(得分: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。即使您选择不使用它们,在寻找一些灵感时,有时也可以看到它们在引擎盖下如何工作。

答案 2 :(得分:0)

您只需使用Undescore.js _.find函数

即可解决此问题
                     volume_weighted_price  log_return
datetime                                              
2017-01-04 18:55:00             101.250000         NaN
2017-01-04 19:00:00             102.000000    0.007380
2017-01-05 04:00:00                    NaN         NaN
2017-01-05 04:05:00                    NaN         NaN
2017-01-05 04:10:00             101.900000         NaN
2017-01-05 04:15:00             101.900000    0.000000
2017-01-05 04:20:00             101.900000    0.000000
2017-01-05 04:25:00             101.900000    0.000000
2017-01-05 04:30:00             101.900000    0.000000
2017-01-05 04:35:00             102.616667    0.007008
2017-01-05 04:40:00             103.000000    0.003729