Flex中Object,Array,Dictionary的对比
Object,Array,Dictionary从功能上看上去差距很大,但在索引上也如在狐仙眼中刘海与牛郎一样有的一比。
功能相同点:
能存储数据
类型 | 示例 |
Object |
var obj:Object = {}; obj["field"]="data"; |
Array |
var arr:Array = []; arr.push({data:1,label:"zh_CN"}); |
Dictionary |
var key:Key = new Key(); var dict:Dictionary = new Dictionary(true); dict[key] = {data:1,label:"zh_CN"}; |
由存储数据引发了一些不同点。
1. 存储数据时,使用的键的类型不同
类型 | 键类型 | 示例 |
Object |
字符串 |
obj["key"]={}; obj.key = {}; |
Array | 整形 |
trace(array[0]) |
Dictionary | 对象Object |
var key:Key = new Key; dict[key] = {}; |
2. 遍历方式的差异
类型 | 遍历方式 |
Object |
for(var str:String in obj) { trace(obj[str]); } |
Array |
for(var i:int = 0; i < array.length ;i++) { trace(array[i]); } |
Dictionary |
for (var key:* in dict) { |
3 使用for each来遍历。
使用for each的优点是,我们不必知道键值,即可遍历。
类型 | 示例 |
Array |
for each(var obj:Object in array) { trace(obj); } |
Dictionary |
var dict:Dictionary = new Dictionary(true); //则会显示undefined |
引用连接:
http://blog.csdn.net/nsrainbow/article/details/6839497