【问题标题】:Use elements from a predefined list as variables on a JavaScript function使用预定义列表中的元素作为 JavaScript 函数的变量
【发布时间】:2021-06-06 00:58:32
【问题描述】:

我有一个预定义的列表,它是下一个:

let services_list = ["SUCURSALES_BANCA_COMERCIAL", "SUCURSALES_BANCA_DE_DESARROLLO",
"SUCURSALES_SOCAP","SUCURSALES_SOFIPO", "CORRESPONSALES", "CAJEROS_AUTOMÁTICOS",
"TERMINALES_PUNTO_DE_VENTA", "ESTABLECIMIENTOS_CON_TPV"]

然后我有以下功能:

let state = document.getElementById("stateDrop").value
let example = []
d3.json("../api_states").then(function(data){
    data.forEach(function(d){
        if(d.ENTIDAD === parseInt(state)){
         services_list.forEach(function(f){
            example.push(d.f)
         })
        }
    })
})

我想要的是输入预定义列表的每个元素,并将该元素用作example.push 部分中的变量。所以数据将包含类似

{"SUCURSALES_BANCA_COMERCIAL":10}

因此,我不想输入每个键,而是使用提到的列表来访问它,但是 (d.f) 部分无法识别。

我希望我说清楚。

【问题讨论】:

  • 第三个代码块中的10 是什么?是来自api吗?
  • 使用括号表示法:example.push(d[f]).
  • @AHMEDSAJJAD 10 只是我想要推送的那个键的普通值。
  • @GerardoFurtado 就是这样!它是如此简单,但我没有弄清楚。如果您可以将其发布为答案,我会将其标记为已解决!

标签: javascript html json list d3.js


【解决方案1】:

假设变量f是字符串,d是数字

// { f: d } 
{"SUCURSALES_BANCA_COMERCIAL":10}

您可以在代码中执行此操作

.
.
    data.forEach(function(d){
        if(d.ENTIDAD === parseInt(state)){
         services_list.forEach(function(f){
            const obj = {};
            obj[f] = d;
            example.push(obj);
         })
        }
    })
.
.

所以您的示例数组将包含带有键值对的元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 2015-10-21
    • 2016-09-02
    相关资源
    最近更新 更多