[英]Finding data in Javascript Object
我有一個通過數據庫調用創建的javascript對象。 它將有多個項目,我將需要能夠通過特定的鍵/值(模塊ID)來引用一個項目。
success: function(data) {
// Define our local vars
var moduleIncludes = Array();
// Loop over each of the users selected modules and put them into an array
$(data).find('modules').each(function() {
// Push module JS file names to an array
moduleIncludes.push($(this).find('moduleJSFile').text());
// Create an object of module data
moduleData.push({
moduleID: $(this).find('moduleID').text(),
moduleRow: $(this).find('row').text(),
moduleColumn: $(this).find('col').text(),
moduleName: $(this).find('moduleName').text(),
moduleDescription: $(this).find('moduleDescription').text(),
moduleJSFile: $(this).find('moduleJSFile').text(),
moduleIcon: $(this).find('moduleIcon').text(),
moduleStartingXsize: $(this).find('startingXsize').text(),
moduleStartingYsize: $(this).find('startingYsize').text(),
moduleResizeLocked: $(this).find('resizeLocked').text(),
moduleMinXsize: $(this).find('minXsize').text(),
moduleMinYsize: $(this).find('minYsize').text()
});
});
// Using our array of modules, fetch them to include them into the page
$.getMultiScripts(moduleIncludes, 'includes/js/modules/').done(function() {
// All of the modules have been included. Trigger the grid functionality.
renderCanvas();
});
}
});
不必遍歷每個人來查找我要尋找的東西,有沒有一種方法可以通過moduleID
命名該對象,因為它具有唯一性?
例如,如果我想查看與moduleId 1有關的所有數據,我希望能夠僅按ID搜索對象,而不是循環查找該對象。
我可以在創作中實現這一目標嗎?
也許您需要的更像是:
moduleIncludes = {};
moduleIncludes[Id] = {"moduleRow":$(this).find('row').text() ...};
這樣,您就可以直接從ID請求特定模塊。
您可以使用filter()
函數搜索對象。
w3schools中的文檔。
示例:按對象ID過濾
function matchId(id) {
return moduleData.moduleID == id;
}
data = moduleData.filter(matchId);
這比用for
或foreach
編寫循環要簡單得多。
祝好運並玩得開心點!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.