假设在 JSL 中我创建了一个关联数组,然后使用一个公式在数据表中创建一个新列,该公式使用该数组根据另一列中的条目填充该列。
当数据表被保存时,它似乎在某个地方保存了该关联数组——它存储在哪里? 在数据表中的某个地方? 有没有办法稍后查看或编辑它?
关联数组将保存在 RAM 内存中,直到清除变量、关闭其所在的命名空间或关闭 JMP 会话。您可能会看到一些让您认为数组正在被保存的情况。
- 当您打开数据表时,它将显示保存数据表时存在的公式列中的值。未运行公式来实现此目的,似乎最后的值与列一起保存。但是,如果您尝试向数据表添加新行,这将强制公式运行,则会显示错误。
- 如果您保存并关闭数据表,然后再次打开它,而不关闭 JMP 会话,则公式可能会发现数组仍保留在 RAM 内存中。因此,它允许公式运行。
我通常处理需要关联数组等项目的公式的方法是将数组的创建添加到公式中,仅在首次运行公式时执行它。一个真正简单的例子是:
如果使用此公式创建关联数组。
myArray = associative array(:age << get values);
然后,要使其在公式中工作,您只需指定仅在公式运行第一行时运行此代码,从而使其可用于所有行
If( Row() == 1,
myArray = Associative Array( :age << get values )
);
将此 JSL 作为公式中的第一项,该公式将起作用。