簡體   English   中英

如何將其變成循環?

[英]How can I turn this into a loop?

我正在嘗試使它更簡潔,我已經縮短了數十行,但是需要遍歷我的column / dropdown值並通過該函數運行它們。 我要空白

function populateDropdowns (dropdownObject) {
$.ajax({
    url: "website eq '"+dropdownObject.column+"'",
    type: "GET",
    headers: {
        "accept": "application/json;odata=verbose",
        },
        success: function (data) {
            var authOne = (data.d.results[0].Choices.results);
            $(dropdownObject.dropdown).empty();
            $.each(authOne, function(i, p) {
                $(dropdownObject.dropdown).append($('<option></option>').val(p).html(p));
            });
        },
        error: function (error) {
            alert(JSON.stringify(error));
        }
    });
}
var dropdownObject = {};
dropdownObject = {column:"value1", dropdown:'#id1'}; populateDropdowns(dropdownObject);
dropdownObject = {column:"value2", dropdown:'#id2'}; populateDropdowns(dropdownObject);
dropdownObject = {column:"value3", dropdown:'#id3'}; populateDropdowns(dropdownObject);
dropdownObject = {column:"value4", dropdown:'#id4'}; populateDropdowns(dropdownObject);
dropdownObject = {column:"value5", dropdown:'#id5'}; populateDropdowns(dropdownObject);

如果您的值固定到5,那么for循環應該可以正常工作。

for(var i = 1; i < 6; i++){
    populateDropdowns( {column : "value" + i, dropdown:'#id' + i});
}

編輯1:如果值不是連續的,則可以將Objects數組傳遞給forEach循環。

var dropdowns = [
  {column: "value1", dropdown: "#id1"},
  {column: "value2", dropdown: "#id2"},
  {column: "value3", dropdown: "#id3"},
  {column: "value4", dropdown: "#id4"},
  {column: "value5", dropdown: "#id5"}
;

dropdowns.forEach(dropdown => populateDropdowns(dropdown));

如果要遍歷某些數據,則數據可能應該在數組中:

const dropdownObjects = [
  { column: 'value1', dropdown: '#id1' },
  { column: 'value2', dropdown: '#id2' },
  { column: 'value3', dropdown: '#id3' },
  // ...
];

for (var i = 0; i < dropdownObjects.length; i++) {
  populateDropdowns(dropdownObjects[i]);
}

或者,更簡潔地說:

dropdownObjects.forEach(populateDropdowns);

暫無
暫無

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

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