首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Javascript中的数组验证设备ID

使用Javascript中的数组验证设备ID
EN

Stack Overflow用户
提问于 2019-11-19 23:57:41
回答 1查看 104关注 0票数 0

在Athom Homey中,我可以创建自己的脚本来执行不同的任务。例如,检查班级灯中的每个设备,如果它们与数组匹配,则应打开。我的第一个尝试就是显示存在于两个数组中的设备。如果我跳过我的数组,只使用数组myLights中的一个ID,它只打印该设备的名称。如何在整个数组中做到这一点呢?

代码语言:javascript
复制
//Fetch all devices from Homey
let devices = await Homey.devices.getDevices();

let myLights = [
//Fireplace_lightstrip
"fe5d4348-8842-438d-be7e-d03d772ddddd",
//Lightswitch_Hall 
"bc77b020-0388-42b5-9088-b329dbceeeee", 
//Chromecast_power
"b50c3c39-285d-4dba-8e4c-327621ffffff", //is not on the class light and should not be displayed
//Next
"four" //is not on the class light and should not be displayed
];

Object.values(devices).forEach(device => {
    if(device.class != 'light') return false;
      //if (device.id !== "bc77b020-0388-42b5-9088-b329dbcef7ba") return false;
      if (device.id !== myLights) return false;
        console.log(device.name);
          return true;
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-20 00:58:23

为了检查整个数组,我们还需要一个循环:

代码语言:javascript
复制
    Object.values(devices).forEach(device => {
    if(device.class != 'light') return false;
      //if (device.id !== "bc77b020-0388-42b5-9088-b329dbcef7ba") return false;
      var result = myLights.filter((light) => device.id == light);
      if (result.length <= 0) return false;
        console.log(device.name);
          return true;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58938130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档