var arr:Array = [0,1,2];
var obj:Object = {gold:"",coin:"",exp:""};
var obj:Object = {gold:"",coin:"",exp:""};
function arrToObj(oldArr:Array, oldObj:Object):Object
{
var index:int = 0;
for(var key:String in oldObj)
{
oldObj[key] = oldArr[index];
index++;
}
return oldObj;
}
function test(initObj:Object)
{
for(var key:String in initObj)
{
trace(key + ":" + initObj[key]);
}
}
test(arrToObj(arr,obj));
{
var index:int = 0;
for(var key:String in oldObj)
{
oldObj[key] = oldArr[index];
index++;
}
return oldObj;
}
function test(initObj:Object)
{
for(var key:String in initObj)
{
trace(key + ":" + initObj[key]);
}
}
test(arrToObj(arr,obj));
然而测试下来obj里面的各个键值对应的属性值并不是数组arr里按照数组下标来赋的值,原来用for...in循环搜索出来的obj的键值不是按照顺序的,故赋值出错了,只有修改function arrToObj了
function arrToObj(oldArr:Array, oldObj:Object):Object
{
{
oldObj.gold = oldArr[0];
oldObj.coin= oldArr[1];
oldObj.exp= oldArr[2];
return oldObj;
}
return oldObj;
}
这样才能达到对应键赋值的作用了...