从多维数组中删除逗号

时间:2012-07-12 19:54:31

标签: google-apps-script

当我将其写入谷歌电子表格中的单元格时,我在从数组中删除逗号时遇到了一些麻烦。 array.join( '');似乎没有做到这一点。我将不胜感激任何帮助。此外,anchor [i] [j] .join('')返回错误。

以下是一些代码:

anchor[i][j].join('')会返回错误

anchor[i].join('')似乎没有效果。

for (var i=0; i(less than) rangeKW.length-2;i++){

anchor[i] = [];

   for (var j=0; j<rangeURL.length;j++){

     anchor[i][j] = ahref + rangeKW[i] + ahref1 + rangeURL[j] + "</a>|";      

    }       
  }    
 cell.setValue("{" + anchor);      
}

2 个答案:

答案 0 :(得分:1)

假设你有

  var x = [[1,2,3],[4,5,6]]

然后这些行中的任何一行都会给你“123456”:

  Array.prototype.concat.apply([], x).join('')
  x.map(function(a){ return a.join(''); }).join('');

第一个构造数组[1,2,3,4,5,6]然后加入它。第二个首先连接每个内部数组,构造[“123”,“456”],然后加入它。我认为第一个可能会更高效,虽然我们在这里讨论花生,但如果你想在行和列之间添加不同的东西,第二个会给你更多控制。

在这两种情况下,这都不会改变x中的原始值。如果这是您想要的,您可以将新值分配给x。

答案 1 :(得分:0)

array.join()适用于“普通”数组,正常我指的是1维,适用于数组本身,不适用于单个元素([i] [j]上的错误),除此之外我不真正理解你想做什么以及你的代码与你的问题有什么关系......

关于anchor[i].join('');// doesn't seem to have an effect.我不知道有多少元素在哪里以及它们是什么样子但语法是正确的。如果要将其设为CSV字符串,也可以使用toString()。

编辑: (感谢评论中的信息。)

我认为最简单的方法(或者至少是最清楚的方法)是创建一些新的变量,您可以单独记录这些变量以确切了解会发生什么。

例如

var anchorString = anchor[i].join(); // or toString() they both return strings from 1D arrays
Logger.log(anchorString) 

如果锚的每个索引i都必须在同一个单元格中,那么在i循环中将其写为:

var anchorString += anchor[i].join(); 
Logger.log(anchorString)