使用“grep”进行条件匹配并在jQuery中打印数组值

时间:2015-04-20 13:02:38

标签: javascript jquery grep

我正在尝试打印或警告数组alpha中的值,这些值从字母" P"开始。因此,我必须得到2个警报,即Peter&帕梅拉。但是,我无法获得所需的2个警报。有人可以帮我打印两个" P"仅使用grep启动值?

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<script>
    var alpha = ["Peter","Jones","Pamela"];
    $.grep(alpha,function(i,value){if (alpha[value]=="P*") {alert (alpha[value]) ;} })
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

为什么不使用each循环,$.grep用于过滤数组 要检查字符串中的第一个字母,请使用indexOf并查看匹配是否为零,字符串中的第一个字母等。

var alpha = ["Peter","Jones","Pamela"];
    
$.each(alpha, function(index, item) {
    if ( item.indexOf('P') === 0 ) alert(item);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如果你只需要使用$.grep,那就是同样的事情

$.grep(alpha, function(item, index) {
    if ( item.indexOf('P') === 0 ) alert(item);
});

由于$.grep需要返回值来过滤

,这只是更多的开销

答案 1 :(得分:0)

这个if(alpha[value].indexOf('P') == 0)

怎么样?

请注意,grep会返回一个数组,如果您只使用alert,那么我认为您最好使用each

答案 2 :(得分:0)

如果你真的想使用$ .grep,试试这个:

$.grep(alpha, function(e,i) {return e.indexOf('P')===0;}).each(function(i,v){alert(v);});