Google Sheet 自定义函数不返回字符串

Google Sheet custom function not returning string

我是 Google Sheet 脚本的新手。

我正在编写代码以从基于命名约定的长文本中删除第六部分。文本有 6 个部分,全部由下划线分隔。但是,我的代码没有 returning 任何东西

  function RetailerStrip(account) {
  var count = 0;
  var retname = "";
  var retcount = 0;
  for(var i = 0, len = account.length; i < len; i++) {
        if (account[i] =="_") {
            ++count;
            }
        if (count == 5) {
            retname[retcount]= account[i];
            ++retcount;
            }
    }
  return retname;
}

然后我从 sheet 调用这个函数,如下所示

=RetailerStrip("abc_def_ghi_jkl_mno_pqr")

当我尝试将 'retname' 声明为数组时,该函数会 return 所需的文本(第五部分),但文本分布在多个单元格中,每个单元格中都有一个字符,而不是作为一个单元格中的单个字符串

var retname = [];

请帮忙

你可以试试这个:

function RetailerStrip(str) { return str.split('_')[5]; }

split() 方法创建一个数组。


但是如果您更喜欢使用字符串迭代方法,您可以使用这个:

function RetailerStrip(account) {
  var count = 0;
  var retname = []; // Array
  var retcount = 0;
  for (var i = 0, len = account.length; i < len; i++) {
    if (account[i] =="_") {
      ++count;
    }
    if (count == 4) {
      retname[retcount]= account[i];
      ++retcount;
    }
  }
  retname.shift(); // To get rid of the underscore from the array
  var retnameString = retname.join(''); // To convert the array to a string
  return retnameString;
}