在Dojo中是否存在与Dictionary或类似集合相同的内容?

时间:2016-08-19 14:54:59

标签: javascript dojo

我正在寻找一种方法来存储集合中的对象并通过UUID识别它们,然后查询集合以通过UUID获取对象。我能想到的最接近的例子是.NET中的Dictionary集合。在Dojo中是否有推荐的功能?

2 个答案:

答案 0 :(得分:2)

dojo中没有等效的东西,即使dojo/store/Memory模块不适用于此目的,您也可以在某种程度上将其用作集合,请查看:

require(["dojo/store/Memory"], function(Memory){
    var someData = [
        {id:1, name:"One"},
        {id:2, name:"Two"}
    ];

    store = new Memory({
        idProperty: "id", //define the id property
        data: someData
    });

    // Returns the object with an id of 1
    store.get(1);

    // Returns query results from the array that match the given query
    store.query({name:"One"});

    // Pass a function to do more complex querying
    store.query(function(object){
        return object.id > 1;
    });

    // Returns query results and sort by id
    store.query({name:"One"}, {sort: [{attribute: "id"}]});

    // store the object with the given identity
    store.put({id:3, name:"Three"}); 

    // delete the object
    store.remove(3); 
});

道场有其他类型的store,可能比dojo/store/Memory更适合您的情况。以下是文档的一些链接:

dojo/store/Memory
dojo/store/JsonRest
dojo/store/DataStore
dojo/store/Cache

存在其他人,但这是必须的公地

答案 1 :(得分:0)

JavaScript中没有此类对象具有Collection。但你可以创建自己的对象,如下所示

var coll = { uid : "value" };
coll['uid2'] = "value2;

可以使用

访问
var a = coll['uid'];

这是JavaScript之美。