Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将另一个参数传递给javascript map()函数_Javascript_Snowflake Cloud Data Platform - Fatal编程技术网

如何将另一个参数传递给javascript map()函数

如何将另一个参数传递给javascript map()函数,javascript,snowflake-cloud-data-platform,Javascript,Snowflake Cloud Data Platform,我想从下面的链接中给出的解决方案创建广义函数 例如,我的数组如下所示 ID TAGS 1 {"tags": [{"tag1": "a"}, {"tag1": "b"}, {"tag2":"123"}, {"tag2":"345"}]} 2 {"tags": [{"tag1&

我想从下面的链接中给出的解决方案创建广义函数

例如,我的数组如下所示

ID   TAGS
1    {"tags": [{"tag1": "a"}, {"tag1": "b"}, {"tag2":"123"}, {"tag2":"345"}]}
2    {"tags": [{"tag1": "c"}, {"tag1": "d"}, {"tag2":"789"}, {"tag2":"678"}]}
从上面链接中提供的javascript UDF来看,它工作正常。然而,我想把它作为一种通用的方法来使用,比如通过将它们作为输入参数传递来获取tag1和tag2的值。请在下面找到UDF,它可以通过直接调用它们来获取tag1/tag2

create or replace function extract_tags(a array)
returns array
language javascript
strict
as '
return A.map(function(d) {return d.tag1});
';
SELECT ID, EXTRACT_TAGS(PAYLOAD:tags) AS tags from t1; -- This will give the result for tag1.
我不想重新创建相同的函数来获取tag2值。相反,我们希望将键作为参数传递,并获得所需的结果。在此方面的任何帮助都将不胜感激。。下面是一个例子。。抱歉,如果以下代码不合适。。我不熟悉爪哇和雪花

create or replace function extract_tags(a array, b varchar)
returns array
language javascript
strict
as '
return A.map(function(d) {return d.{B}}); //Calling the second parameter to get the appropriate values
';

 SELECT ID, EXTRACT_TAGS(PAYLOAD:tags, 'tag1') AS tags from t1; --To get the tag1 values
 SELECT ID, EXTRACT_TAGS(PAYLOAD:tags, 'tag2') AS tags from t1; --Using the same function to get tag2 values
中返回A.map(函数(d){returnd.{B})映射函数应该是
返回d[B]


(将@Pipetus answer在注释中复制到答案中,这样这个问题就可以找到答案的结尾)

除非我遗漏了什么,否则我想map函数应该是
返回d[B]
。谢谢mate@Pipetus。。这起作用了