0

我在由其他一些 perl 模块生成的 perl 中有一个未知大小的数组。现在,正是我想找出传递给 jquery 函数的值是否存在于 perl 数组中。

有没有一种方法可以逐个元素地比较输入值与 perl 数组中的每个值?

我环顾四周,看起来我可以通过提供索引来访问 jquery 中的 perl 数组,但我们不知道数组的大小。所以我不知道什么时候停止。

我的石匠代码看起来类似于:

<%perl>
    my @testArray = [call to some other perl module to get the values]
</%perl>

<script type="text/javascript">
    function checkIfValExistsInTestArray(val) {
        // Code to test if "val" exists in "@testArray". Returns boolean true/false.
    }
</script>
4

1 回答 1

2

要检查是否存在,您需要一个哈希。传输数据的一种简单方法是使用JSON.

% use JSON qw( );

<script type="text/javascript">

var testArray = <% JSON->new()->encode({ map { $_ => 1 } get_values() }) %>;

function checkIfValExistsInTestArray(val) {
   return testArray[val];
}

</script>

例如,如果get_values()返回appleand orange,你会得到

<script type="text/javascript">

var testArray = {"apple":1,"orange":1};

function checkIfValExistsInTestArray(val) {
   return testArray[val];
}

</script>

我不认识梅森,所以可能会有错误,但你明白了。

于 2014-07-17T17:01:44.593 回答