如何动态命名结构元素?

时间:2017-01-09 22:07:11

标签: coldfusion

xls.each(function(v, k) {
    oid = v.OrderID;        
    xlsindexed[oid] = v;//This gives me a struct with 9999 empty values.
});

我正在尝试获取一个数组/结构,其中每个元素都被命名为orderID,并且每个元素的值都是带有订单详细信息的结构。

我尝试过各种各样的

组合
xlsindexed[oid] = v;
xlsindexed.oid = v;
xlsindexed.#oid# = v;

也尝试过:

xlsindexed[oid] = 'blah';

仍然得到9999 [未定义数组元素]的结构 我的xls变量有大约30个元素。

1 个答案:

答案 0 :(得分:1)

(来自评论......)

  

这给了我一个包含9999个空值的结构

从技术上讲,你会得到一个带有许多未定义元素的数组。发生这种情况的原因是,当new Event未定义时,CF必须猜测这是什么类型的对象:

document.createEvent

..应该产生:数组或结构。显然,它会看到数值并猜测你想要一个数组。因此它使用那么多元素创建并初始化一个数组。

如果事先将xlsindexed声明为结构,则会消除歧义并产生预期结果。

  xlsindexed[ someNumericValue ] = v;