簡體   English   中英

在Javascript對象中查找數據

[英]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);

這比用forforeach編寫循環要簡單得多。

祝好運並玩得開心點!

暫無
暫無

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

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