我正在尝试从数组中获取一项:
const device = this.selectedDevtype.devices.find(item =>
console.log(this.deviceID);
return item.device_id === this.deviceID;
});
console.log(device);
控制台日志为this.deviceID
写入“ 4”,并且为device
值返回未定义。
但是,如果我输入一个硬编码的值,它将起作用:
const device = this.selectedDevtype.devices.find(item =>
console.log(this.deviceID);
return item.device_id === 4;
});
console.log(device);
为什么第一个功能不起作用?怎么了谢谢。
我的打字稿版本是2.6.2,我正在使用Angular 5。
有效地,我正在比较字符串和数字。很遗憾我在组件类中声明了类型:
deviceID: number;
有角物质无线电组正在将变量的类型更改为字符串:
<mat-radio-group [(ngModel)]="deviceID" (change)="updateDevice()">
<mat-radio-button fxFlex="50"
*ngFor="let device of selectedDevtype.devices" value="{{ device.device_id }}">
[{{ device.key }}]{{ device.name }}
</mat-radio-button>
</mat-radio-group>
也许这可以帮助某人。
答案 0 :(得分:0)
在任何情况下,item.device_id
似乎都不等于4。
find()方法返回满足提供的测试功能的数组中第一个元素的值。否则返回undefined。
答案 1 :(得分:0)
您确定没有将字符串与整数进行比较吗?
尝试:
ssh $remote 'docker run -h "$(hostname)" \
-e "VARIABLE='"$SCRIPT_VAR"'" \
-e "HOST_HOSTNAME=$(hostname)" \
...'