2016-03-08 74 views
0

如何使用JSON數組中的值更改$ .get中的數據元素?

下面是執行一次操作的代碼示例:

  $.get(url, { 
       'p': testerName, 
       'magic': 'magic', //this value is constant now but may change 
       'init': init1 //this is the value I want to change from a value in a JSON array 
      }, function() { 
       // console.log('done'); 

      }); 

我想改變的值是「初始化」。例如,如果「INIT1」是一個JSON數組類似於:

"initvalues":[ 
     {"init1":"usethisfirst"}, 
     {"init1":"usethissecond"}, 
     {"init1":"usethisthird"} 
    ] 

我想$.get跑三次,然後停止。當然,如果數組中有更多的值,它應該使用所有這些值並停止。預計值的數量是可變的。

在下面的例子中,如果我命名爲var init1 = usethisfirst它將運行一次。

 $.get(url, { 
      'p': testerName, 
      'magic': 'magic', //this value is constant now but may change 
      'init': init1 //this is the value I want to change from a value in a JSON array 
     }, function() { 
      // console.log('done'); 

     }); 

而且,我可以不斷重複每個不同的「init1」值的例程,但我知道必須有更好的方法。

附加信息:

目的是避免硬編碼重複$.get功能和使用一個其中將運行由JSON陣列(一個或多個)中的值的數量驅動的n次。

回答

2

最簡單的方法可能是使用類似forEach的方式執行獲取請求。如果你想要做的是從一些init1值設置init場,你可以嘗試這樣的事:

var init_values = [ 
    {"init1" : "use this first"}, 
    {"init1" : "use this second"}, 
    {"init1" : "use this third"} 
]; 

init_values.forEach(function(settings) { 
    $.get(url, { 
    'p' : testerName, 
    'magic' : 'magic', 
    'init': settings['init1'] 
    }, function() { 
    // Do something for this particular request. 
    }); 
}); 

然而,根據您的JSON數組的來源,你可能也有興趣在設置其他字段自動:

var init_values = [ 
    { 
    "p" : "some value", 
    "magic" : "magic", 
    "init" : "use this first" 
    }, 
    { 
    "p" : "a different value", 
    // No value for magic - use default. 
    "init" : "use this second" 
    }, 
    {"init" : "use this third"} // Use defaults for 'p' and 'magic'. 
]; 

init_values.forEach(function(settings) { 
    var defaults = { 
    "p" : "default p", 
    "magic" : "default magic", 
    "init" : "default init" 
    }; 
    $.get(url, $.extend(defaults, settings), function() { 
    // Do something for this request. 
    }); 
}); 
+0

謝謝!要抓住一口吃,然後儘快測試這個。閱讀它非常有意義 - 並且,感謝您爲擴展其他變量而付出的額外努力。 – user1452893

+0

轟!你讓我今天一整天都感覺很好。 – user1452893

相關問題