我正在尝试打印或警告数组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>
答案 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);});