1
在Google表格中擴展兩個用戶範圍,這可以在控制檯中工作,但在工作表中不起作用。有人可以解釋爲什麼嗎?谷歌腳本功能比較在控制檯中工作但不在工作表中的兩個範圍
function DIFF(a, b) {
return a.filter(function(v){
return b.indexOf(v) === -1 ? true : false;
}).length
}
在Google表格中擴展兩個用戶範圍,這可以在控制檯中工作,但在工作表中不起作用。有人可以解釋爲什麼嗎?谷歌腳本功能比較在控制檯中工作但不在工作表中的兩個範圍
function DIFF(a, b) {
return a.filter(function(v){
return b.indexOf(v) === -1 ? true : false;
}).length
}
當傳遞的範圍內,以自定義表函數,它得到要麼
[[1], [2], [3]]
,對於某個行範圍,得到[[1, 2, 3]]
。您的DIFF
函數假定參數是普通的值數組。所以你需要扁平化雙數組,或者將單個值轉換爲數組。這是功能flatten
的功能。
function flatten(arg) {
if (arg.constructor === Array) {
return arg.reduce(function(a, b) {
return a.concat(b);
});
}
else {
return [arg];
}
}
然後DIFF
可以是這樣的:
function DIFF(a, b) {
a = flatten(a);
b = flatten(b);
return a.filter(function(v) {
return b.indexOf(v) === -1;
}).length
}
(旁白:三元操作: ? true : false
是多餘的在這裏,所以我刪除它)