假設在 JSL 中我創建了一個關聯數組,然後使用一個公式在數據表中創建一個新列,該公式使用該數組根據另一列中的條目填充該列。
當數據表被保存時,它似乎在某個地方保存了該關聯數組——它存儲在哪裡? 在數據表中的某個地方? 有沒有辦法稍後查看或編輯它?
關聯數組將保存在 RAM 內存中,直到清除變量、關閉其所在的命名空間或關閉 JMP 會話。您可能會看到一些讓您認為數組正在被保存的情況。
- 當您打開數據表時,它將顯示保存數據表時存在的公式列中的值。未運行公式來實現此目的,似乎最後的值與列一起保存。但是,如果您嘗試向數據表添加新行,這將強制公式運行,則會顯示錯誤。
- 如果您保存並關閉數據表,然後再次打開它,而不關閉 JMP 會話,則公式可能會發現數組仍保留在 RAM 內存中。因此,它允許公式運行。
我通常處理需要關聯數組等項目的公式的方法是將數組的創建添加到公式中,僅在首次運行公式時執行它。一個真正簡單的例子是:
如果使用此公式創建關聯數組。
myArray = associative array(:age << get values);
然後,要使其在公式中工作,您只需指定僅在公式運行第一行時運行此代碼,從而使其可用於所有行
If( Row() == 1,
myArray = Associative Array( :age << get values )
);
將此 JSL 作為公式中的第一項,該公式將起作用。