gpt4 book ai didi

javascript - 支持具有多个输入的自定义函数中的数组

转载 作者:行者123 更新时间:2023-12-02 23:10:59 27 4
gpt4 key购买 nike

我的 Google Apps 脚本中有一个自定义函数,它接受两个变量。我希望这个函数采用两个数组作为参数,但是放置“if input.map, return input.map(function)”的标准方法不适用于两个变量。

我尝试通过输入进行递归,但由于函数中有两个输入,因此它不适用于两者。

这不是我正在使用的函数,但它有同样的问题。

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 作为函数参数提供给 Array.map 时,第一个参数将是调用 map 的数组的元素,第二个参数将是该元素的索引。

解决方案:

  • 仅在第一个数组x上使用map,然后使用相应的第二个数组y中的元素

片段:

function multiply(x, y) {
if (x.map) {
return x.map(function(xEl, i) {
yEl = y.map ? y[i] : y; // corresponding y Element
return multiply(xEl, yEl);
});
}
if (y.map) {//used, when y is a array and x is number
return multiply(y, x);
}
return x * y;// default
}

a = [[1],[2]];
b= [[3],[4]];
c= [[5,6],[7,8]];
d= [[1,2],[3,4]];
console.log(JSON.stringify(multiply(a,b)));
console.log(JSON.stringify(multiply(a,5)));
console.log(JSON.stringify(multiply(5,b)));
console.log(JSON.stringify(multiply(c,d)));
console.log(JSON.stringify(multiply(c,2)));
console.log(JSON.stringify(multiply(a,c))); //trims c
console.log(JSON.stringify(multiply(c,a)));//throws error

引用文献:

关于javascript - 支持具有多个输入的自定义函数中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363672/

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