第一篇文章,请对我轻松一点。
我有一个看起来像这个[BTC-LTC, BTC-DOGE, BTC-VTC]
的数组,我试图将所有的“-”更改为“ _”。但是在使用.replace()
方法时遇到了麻烦。这是我的代码。
var array = [BTC-LTC, BTC-DOGE, BTC-VTC];
var fixedArray = [];
for(var i=0; i <= array.length; i++){
var str = JSON.stringify(array[i]);
var res = str.replace("-","_");
fixedArray.push(res);
};
我尝试不使用
JSON.stringify
,但这也不起作用。我也尝试过先创建var str = String();
,这也没有用。 .replace()
方法是否可能在Google脚本中不可用? 最佳答案
在您的示例中,var array = [BTC-LTC, BTC-DOGE, BTC-VTC];
应该var array = ["BTC-LTC", "BTC-DOGE", "BTC-VTC"];
但是,我从评论中发现,这只是您最初示例中的错字。var str = JSON.stringify(array[i]);
是多余的。您只需要执行var str = array[i];
即可,因为数组中的值已经是一个字符串,所以无需将其再次变为一个值-“ stringify”方法期望为对象或数组提供可操作的对象。
但是,主要问题是您的for
循环进行了太多的迭代。数组是从零开始的,因此当索引比数组的长度小1(而不是等于数组的长度)时,您需要停止循环。例如如果array.length为10,则有10个索引,但它们从0开始,因此索引为0、1、2、3、4、5、6、7、8、9。如果您的循环继续等于array.length,那么在最后一个循环中,array[10]
将超出范围,只有最后一次迭代才给您undefined
错误。
var array = ["BTC-LTC", "BTC-DOGE", "BTC-VTC"];
var fixedArray = [];
for (var i = 0; i < array.length; i++) {
var str = array[i];
var res = str.replace("-","_");
fixedArray.push(res);
}