繁体   English   中英

Angular 2 / Typescript-如何检查对象数组以查看属性是否具有相同的值?

[英]Angular 2 / Typescript - how to check an array of objects to see if a property has the same value?

这个问题是在Javascript中完成的,但是我会认为在Typescript中我可以做某种映射/过滤操作来完成同样的事情。

我有一个称为Room的对象数组。 每个Room都有一个名为Width的属性(实际上是一个字符串,例如'4m','5m','6.5m')。

我需要检查整个数组以查看所有宽度是否都相同。

基于这个问题,我有这个问题,但是我想知道TypeScript是否有更好的东西:

let areWidthsTheSame = true;
this.qp.rooms.forEach(function(room, index, rooms) {
  if (rooms[index] != rooms[index+1]) areWidthsTheSame = false;
});  

有任何想法吗?

仅供参考,链接问题的注释链接到这些性能测试,在此问题的上下文中这很有趣:

这可以通过以下方式完成:

const widthArr = rooms.map(r => r.width);
const isSameWidth = widthArr.length === 0 ? true :
                          widthArr.every(val => val === widthArr[0]);

我们首先将rooms数组转换为宽度数组,然后检查widths数组中的所有值是否相等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM