3 回答
TA贡献1804条经验 获得超8个赞
根据需求有多种方式,
我假设IConfig接口只有aF1, bF1, cF1 ...布尔属性,那么你可以像下面这样,
解决方案:1
this.data_Config.forEach(itm => {
Object.keys(itm).forEah(key=>{
if(this.data_Config[key] === 'Y'){
itm.Levels.push('whatever'); // I don't know exactly what 'A','B' n all represent }
})
});
解决方案:2
假设IConfig接口是否有一些其他属性,例如height,width一些非布尔值,在这种情况下你可以执行以下操作,
const booleanProperties = ['aF1', 'bF1', 'cF1']; // define bool properties in array
this.data_Config.forEach(itm => {
Object.keys(itm).forEah(key=>{
if(booleanProperties.includes(key) && this.data_Config[key] === 'Y'){
itm.Levels.push('whatever'); // I don't know exactly what 'A','B' n all represent }
})
});
TA贡献1869条经验 获得超4个赞
你可以这样做:
Object.keys(this.dataConfig).filter(key => key.indexOf('Fl') != -1).forEach(flag => {
if(this.dataConfig[flag] == 'Y')
itm.Levels.push(this.dataConfig[glag].charAt(0).toUpperCase());
}
仅当所有标志都与 xFl 相同时,此代码才有效,其中 x 是某个字母,并且此标志引用需要推送到 Levels 数组的相同大写字母。一点解释:首先你从你的对象中提取作为标志的键,然后你迭代它们并检查你的条件。
TA贡献1859条经验 获得超6个赞
在打字稿中,您可以创建ENUM这样的。
enum enumVal {
aFl = 'A',
bFl = 'B'
}
然后在迭代中检查值并添加到您想要的结果中。
result:any[] = [];
this.data_Config.forEach(key=>{
if(this.data_Config[key] === 'Y'){
result.push(enumVal[key]);
}
});
添加回答
举报