我正在试验缓存。
我注意到如果你存储一个字符串数组,字符串将由komma
分隔
我无法找到一种允许将数组作为数组检索的方法,只是因为字符串似乎是可能的
显然,如果数组元素包含komma,则通过拆分获得的字符串来检索数组将导致问题。如果存储书籍或报纸文章的标题等,就会发生这种情况。
function test()
{
var delimiter = '\r\n';
var xx = '';
for (var i=0; i<10; i++) xx = xx + '_' + i;
var numMax = 1024;
var extra = ',';
var string = [];
var total = '';
for (var i=0; i<numMax; i++)
{
string[i] = 'string[' + i + ']=' + i + extra + xx;
total = total + string[i] + delimiter;
}
total = total.substr(0, total.length - delimiter.length); // Remove the delimiter at the end of the string
cacheScript.put('test_total', total);
cacheScript.put('test_string', string);
var test_total = cacheScript.get('test_total');
Logger.log('test_total=\n' + test_total);
var test_string = [];
test_string = cacheScript.get('test_string'); // Will NOT retrieve an array but a string
Logger.log('test_string=\n' + test_string);
var wrong = test_string.split(','); // Will NOT retrieve the original array
var right = test_total.split(delimiter); // Will reproduce the original array
}
所以我想知道使用cacheService存储的数据是否可以恢复到原始数组中,而无需自己添加分隔符(例如&#39; total&#39;)或分割komma(例如&#39; test_string& #39;?)
答案 0 :(得分:1)
您可以将join(delimiter)
和split(delimiter)
的组合与任何“正常”字符串中永远不会出现的字符结合使用。
我通常使用|
或∏
之类的内容,如下例所示
var array = ['any string,really any','test-any-chrs','56'];
var string = array.join('∏');
var recovered = string.split('∏');
Logger.log('array = '+array+' length = '+array.length);
Logger.log('string = '+string);
Logger.log('recovered = '+recovered+' length = '+ recovered.length);
另请注意,如果您想要更多严重,可以使用JavaScript方法:JSON.stringify(object)和JSON.parse(string)