Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组到函数的字符串用作变量_Javascript_Jquery - Fatal编程技术网

Javascript 将数组到函数的字符串用作变量

Javascript 将数组到函数的字符串用作变量,javascript,jquery,Javascript,Jquery,我想使用数组中的一些字符串并将其传递到函数中。该字符串与全局变量具有相同的名称。然后,我想将输出设置为变量名。它被传递给一个滑块函数,在该函数中,变量应在发生任何更改时更新 我尝试通过[window]或eval()传递它,但它不起作用。理想情况下,在createSliders()函数中,幻灯片上的全局变量将更新 i_current_annual_volume = 1000000; let sliderArr = [{ input: "i_current_annual_volume" (o

我想使用数组中的一些字符串并将其传递到函数中。该字符串与全局变量具有相同的名称。然后,我想将输出设置为变量名。它被传递给一个滑块函数,在该函数中,变量应在发生任何更改时更新

我尝试通过[window]或eval()传递它,但它不起作用。理想情况下,在createSliders()函数中,幻灯片上的全局变量将更新

i_current_annual_volume = 1000000;

let sliderArr = [{
   input: "i_current_annual_volume" (or window[i_current_annual_volume]),
   value: 1000000,
   min: 1000,
   max: 10000000,
   step: 1000,
}];

function createSliders() {
  for ( var i = 0; i < sliderArr.length; i++ ){
    let slider_name = "#slider-" + [i + 1];
    let handle_name = "#custom-handle-" + [i + 1];
    let input_field = sliderArr[ i ].input;

    $( slider_name ).slider({
      value: sliderArr[ i ].value,
      min: sliderArr[ i ].min,
      max: sliderArr[ i ].max,
      step: sliderArr[ i ].step,
      create: function() {
        $( handle_name ).text( $( this ).slider( "value" ) );
      },
      slide: function( event, ui ) {
        $( handle_name ).text( ui.value );
        input_field = ui.value;
      },
      stop: function(){
        loadNumbers();
      }
    });
  }
};



When I remove the quotes in the sliderArr, the output is 1000000. I need it to be i_current_annual_volume.
i_当前_年_量=1000000;
让sliderArr=[{
输入:“i_当前\年度\卷”(或窗口[i_当前\年度\卷],
价值:1000000,
最小:1000,
最高限额:10000000,
步骤:1000,
}];
函数createSliders(){
对于(变量i=0;i
您说过您试图使用
窗口,但没有说明您是如何尝试的。全局变量是
窗口
对象的属性。看

改变

        input_field = ui.value;


谢谢你的帮助。我最终创建了一个对象数组{},并将变量作为字符串传递。这最终是一个更简单的解决方案

他为什么要这么做?添加了一些解释和一个更广泛问题的链接。@Rob我不明白为什么这个答案不起作用。虽然作者确实提到过尝试使用
窗口
,但没有给出具体细节。@Pablo Rob没有说它不起作用。他只是提醒我添加更多的解释,而不仅仅是发布代码。由于我经常对别人发表类似的评论,他抓住了我。
        window[input_field] = ui.value;