我怎样才能把它变成一个循环?
问题描述:
我试图让这个更干净,我已经缩短了几十行,但需要循环访问我的列/下拉值并通过函数运行它们。我空白。我怎样才能把它变成一个循环?
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});
}
EDIT 1:如果值不连续的,则可以通过对象阵列到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);
+0
谢谢,这也是一个很好的答案。 – Ryan
循环,从1至5和使用串联 –