javascript - 如何简化变量代码?

标签 javascript json angular typescript

我有 6 个选项卡,每个选项卡都有一个对象。我正在从服务器接收数据并使用选项卡名称对其进行过滤。

     var a = {} // First Tab Object
    var b = {} // Second Tab Object
    var c = {} // Third Tab Object
    var d = {}// Fourth Tab Object
    var e = {};// Fifth Tab Object
    var f = {};// Sixth Tab Object

this.getService.getData().subscribe( res =>{
    let data = res.filter(data=>{
    return data.oType == this.tabclickedName
    }) 

    if (this.tabclickedName == 'One' ){
    this.a = data
    }
    else if (this.tabclickedName == 'Two' ){
    this.b = data 
    }
    else if (this.tabclickedName == 'Three' ){
    this.c = data 
    }
    else if (this.tabclickedName == 'Four' ){
    this.d = data 
    }
})

<强>1。//过滤来自单击选项卡的服务的数据

<强>2。//this.tabclickedName = 被点击的选项卡名称

问题 1:- 现在我必须编写这样的 if else 语句来为指定选项卡分配数据

如何使这段代码更加动态,这样我就不必编写这样的 if else 语句?

问题 2:- 在这种情况下如何避免使用过滤器并使用管道或任何其他 rxjs 运算符在服务调用中使用 rxjs 运算符解决问题?

使用的方法:-

let hashTab = {One :'a',two :'b',three:'c',four:'d',five:'e',six:'f'}
let dataTabName = this.hashTab[this.tabclickedName];

这种方法的问题:- dataTabName 是一个字符串,我想要用它来存储数据的变量

最佳答案

您可以通过使变量名称与选项卡名称相对应来放弃 if-else。

然后你可以写:

this[this.tabclickedName] = data;

然后完成。

关于javascript - 如何简化变量代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174961/

相关文章:

java - 无法从 .net Web 服务获取 JSONArray

javascript - 单击同一类的多个实例不起作用

javascript - 防止浏览器缓存 AJAX 调用结果

javascript - 停止谷歌地图空闲事件监听器

javascript - 检索纯文本 JSON,插入到 JavaScript

Python 值错误 : No JSON object could be decoded

javascript - 提交动态创建的表单

angular - 从抽象类继承存在依赖注入(inject)问题

css - 如何更改 Angular 中的简单条颜色

javascript - Phonegap 如何在应用程序中获取应用程序名称?