所以我工作的代码是这样的:
var name:String = "Cashier";
var data:String = "Pay";
arr.push({name:tmpName, data:tmpData});
name、tmpName、data 和 tmpData 都是变量。然而,这显示为“名称”和“数据”是关键,而不是“收银员”和“支付”
但是,tmpName 和 tmpData 设置正确。
任何帮助将不胜感激。
所以我工作的代码是这样的:
var name:String = "Cashier";
var data:String = "Pay";
arr.push({name:tmpName, data:tmpData});
name、tmpName、data 和 tmpData 都是变量。然而,这显示为“名称”和“数据”是关键,而不是“收银员”和“支付”
但是,tmpName 和 tmpData 设置正确。
任何帮助将不胜感激。
您需要对动态命名的键使用方括号表示法:
var object:Object = {};
object[name] = tmpName;
object[data] = tmpData;
arr.push(object);
我正在做一个 PHP 到 AS3 的代码转换,我创建了这个函数来帮助我使用动态键声明的关联数组(它应该在 JavaScript 中工作,只需进行一些更改)。它也可能对您有所帮助。
function array(... keysAndValues):Object // Emulates PHP's associative arrays
{
var obj:Object = {};
if (keysAndValues.length % 2 != 0)
{
throw new Error('The number of arguments of array() must be even. To create a non-associative array, use "new Array()" or "[]".');
}
for (var i:int = 0; i < keysAndValues.length; i += 2)
{
obj[keysAndValues[i]] = keysAndValues[i + 1];
}
return obj;
}
这样,如果我在字符串中有键和值...
var key1:String = 'FirstKey', value1:String = 'aaaaa';
var key2:String = 'SecondKey', value2:String = 'bbbbb';
我只能做...
var myAssoc:Object = array(
key1, value1,
key2, value2
);
这与 PHP 的语法非常相似:
$myAssoc = array(
$key1 => $value1,
$key2 => $value2
);
因此,当使用此 array() 方法时,您只需将 PHP assoc 数组中的“=>”替换为“,”即可。只要确保参数的数量是偶数,并且不要混淆键和值,因为它是键,值,键,值,...
您可以将这种小写array()
方法用于类似 PHP 的关联数组,并将 AS3 的常规大写new Array()
声明用于数字数组(或仅使用[]
)。请记住,当使用小写字母时,array()
您实际上得到的是一个对象,而不是一个数组,因此您应该声明将其相应地存储为对象的变量。