我有一个对象,我想执行添加/删除/查找操作。所以我只是尝试使用Ext.util.Collection / Ext.util.MixedCollection / Ext.util.HashMap类将该Object转换为HashMap / Collection对象。因为它已经是一个对象我只想进行类型转换?在ExtJS中是否可以使用直接的选项来实现这一目标?
目前使用以下实用方法我正在实现此目的。除此之外还有其他更好的选择吗?
原始对象: -
Object {abbreviateValues: true, category: "P", charCode: 13092,charDescription: Array[5], charId: 13092…}
效用方法: -
convertObjectToCollection: function(rawObject){
var hashMapObject = Ext.create('Ext.util.HashMap');
for(var key in rawObject) {
hashMapObject.add(key,rawObject[key]);
}
return hashMapObject;
}
谢谢!
答案 0 :(得分:2)
如果简直就是你所要的,那么你真的需要一个单独的效用 - 至少是小规模的:
var obj = { foo: 1, bar: 2, baz: 3 },
map = Ext.create('Ext.util.HashMap');
Ext.iterate(obj, map.add, map);
答案 1 :(得分:1)
没有内置方法。您可以添加到HashMap以使其更干净:
Ext.require('Ext.util.HashMap', function() {
Ext.util.HashMap.fromObject = function(o) {
var map = new Ext.util.HashMap(),
key;
for (key in o) {
map.add(key, o[key]);
}
return map;
}
});
Ext.util.HashMap.fromObject({foo: 1, bar: 2});