gpt4 book ai didi

javascript - 谷歌脚本。类型错误 : Cannot call method "replace" of undefined

转载 作者:行者123 更新时间:2023-12-01 03:28:48 26 4
gpt4 key购买 nike

第一次发帖,请多多包涵。

我有一个看起来像这样的数组 [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);
}

关于javascript - 谷歌脚本。类型错误 : Cannot call method "replace" of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44648595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com