簡體   English   中英

如何在javascript中串聯創建變量?

[英]How to create variable with concatenation in javascript?

我的代碼很長,想簡化一下。 我不認為,因此我們可以使用字符串隱藏來創建不同的變量名稱。 還有其他方法嗎?

If(Something){
    var a = some.Test1.x;
    var b = some.Test1.y;
    var c = some.Test1.z;
    var d = some.Test1.p;
}

If(SomethingElse){
    var a = some.Test2.x;
    var b = some.Test2.y;
    var c = some.Test2.z;
    var d = some.Test2.p;
}

If(OneMore){
    var a = some.Test3.x;
    var b = some.Test3.y;
    var c = some.Test3.z;
    var d = some.Test3.p;
}

可能會創建這樣的功能,我知道這是不對的,但與此類似的任何東西。

function test(s){
  a = some.s.x;
  b = some.s.y;
  c = some.s.z;
  d = some.s.p;
}

您可以使用類似數組的語法

function test(s) {
    var a,b,c,d;
    if (s === Something) {
        test = "Test1";
    }
    if (s === SomethingElse) {
        test = "Test2";
    }
    if (s === OneMore) {
        test = "Test3";
    }

    a = some[test].x;
    b = some[test].y;
    c = some[test].z;
    d = some[test].p;
}

這是功能上等效但從未使用過的eval語法的改進版本:

eval("a = some."+test+".x");
function test(index){
  t = some["Test" + index];

  a = t.x;
  b = t.y;
  c = t.z;
  d = t.p;
}

和執行:

test(1); test(2); test(3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM