This question在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;
});
有什么想法吗?
仅供参考,链接问题的评论链接到these性能测试,这在这个问题的背景下很有意思:
答案 0 :(得分:2)
这可以通过以下方式完成:
const widthArr = rooms.map(r => r.width);
const isSameWidth = widthArr.length === 0 ? true :
widthArr.every(val => val === widthArr[0]);
我们首先将房间数组转换为宽度数组,然后检查宽度数组中的所有值是否相等。