Javascript 支持具有多个输入的自定义函数中的数组
我在谷歌应用程序脚本中有一个自定义函数,它包含两个变量。我希望这个函数使用两个数组作为参数,但是标准的方法是使用“if input.map,return input.map(function)”来处理两个变量 我尝试过递归输入,但由于函数中有两个输入,因此不能同时使用这两个输入 这不是我正在使用的函数,但它也有同样的问题Javascript 支持具有多个输入的自定义函数中的数组,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我在谷歌应用程序脚本中有一个自定义函数,它包含两个变量。我希望这个函数使用两个数组作为参数,但是标准的方法是使用“if input.map,return input.map(function)”来处理两个变量 我尝试过递归输入,但由于函数中有两个输入,因此不能同时使用这两个输入 这不是我正在使用的函数,但它也有同样的问题 function multiply(x,y) { if (x.map){ return x.map(multiply) } if (y.map)
function multiply(x,y)
{
if (x.map){
return x.map(multiply)
}
if (y.map){
return y.map(multiply)
}
return x * y
}
我希望公式采用两个数组(即A1:A5、B1:B5)并对每个变量执行函数——即返回A1*B1、A2*B2等。问题:
接收两个参数。当multiply
作为函数参数提供给multiply
时,第一个参数将是调用map的数组的元素,第二个参数将是元素的索引Array.map
- 仅在第一个数组
上使用map,然后使用对应的第二个数组x
y
函数乘法(x,y){
如果(x.map){
返回x.map(函数(像素,i){
yEl=y.map?y[i]:y;//对应的y元素
返回乘法(xEl,yEl);
});
}
如果(y.map){//使用,当y是数组,x是数字时
返回乘法(y,x);
}
返回x*y;//默认值
}
a=[[1],[2]];
b=[[3],[4]];
c=[[5,6],[7,8];
d=[[1,2],[3,4];
log(JSON.stringify(multiply(a,b));
log(JSON.stringify(multiply(a,5));
log(JSON.stringify(multiply(5,b));
log(JSON.stringify(multiply(c,d));
log(JSON.stringify(multiply(c,2));
log(JSON.stringify(multiply(a,c))//修剪c
log(JSON.stringify(multiply(c,a))//抛出错误
问题:
接收两个参数。当multiply
作为函数参数提供给multiply
时,第一个参数将是调用map的数组的元素,第二个参数将是元素的索引Array.map
- 仅在第一个数组
上使用map,然后使用对应的第二个数组x
y
函数乘法(x,y){
如果(x.map){
返回x.map(函数(像素,i){
yEl=y.map?y[i]:y;//对应的y元素
返回乘法(xEl,yEl);
});
}
如果(y.map){//使用,当y是数组,x是数字时
返回乘法(y,x);
}
返回x*y;//默认值
}
a=[[1],[2]];
b=[[3],[4]];
c=[[5,6],[7,8];
d=[[1,2],[3,4];
log(JSON.stringify(multiply(a,b));
log(JSON.stringify(multiply(a,5));
log(JSON.stringify(multiply(5,b));
log(JSON.stringify(multiply(c,d));
log(JSON.stringify(multiply(c,2));
log(JSON.stringify(multiply(a,c))//修剪c
log(JSON.stringify(multiply(c,a))//抛出错误