我正在尝试查询dojo数据存储区对象。商店有多个对象,每个对象都是一个名为OBJECTID的键,具有唯一值。有没有办法像这样查询商店:
dataStoreObjet.query({OBJECTID:6990,OBJECTID:34277,OBJECTID:9501});
现在它只返回最后一个对象。我敢肯定我错过了一些简单的东西,但这让我感到疯狂。我不想为每个值运行查询,然后根据所有这些查询创建一组新值。
由于
答案 0 :(得分:0)
对象 {OBJECTID:6990,OBJECTID:34277,OBJECTID:9501} 只包含最后一个值。
这是因为javascript对象是属性及其值的映射。 {OBJECTID:6990,OBJECTID:34277,OBJECTID:9501}定义与
相同var obj = { OBJECTID : 6990 };
obj.OBJECTID = 34277;
obj.OBJECTID = 9501;
从上面可以看出, obj 对象包含最后一个值,即 9501 。实际上您对dataStoreObjet的查询 是
dataStoreObjet.query({OBJECTID : 9501} );
现在解决您的问题。
您需要将函数作为查询参数传递,该参数将比较值并返回true或false,以使对象成为查询结果的一部分。
dataStoreObjet.query( function(object){
return (object.OBJECTID == 6990) || (object.OBJECTID == 6990) || (object.OBJECTID == 6990) ;
}) // Pass a function to do more complex querying