4

Is there any way to do this filtering out only items in an array that start with the letter a. ie

var fruit = 'apple, orange, apricot'.split(',');
  fruit = $.grep(fruit, function(item, index) {
  return item.indexOf('^a'); 
  });
alert(fruit);
1
  • Try this in jQuery: var $beginswitha = $(":input[name^='a']"). Then place that variable in your indexOf statement. Commented May 13, 2015 at 9:41

3 Answers 3

4

Three things:

  • You want to split by ', ', not ','
  • indexOf doesn't take a regex, but a string, so your code searches for a literal ^. Use search if you want to use regular expressions.
  • indexOf (and search) do return the index where they find the sought-after term. You'll have to compare that to your expectation: == 0. Alternatively, you can use the regex test method which returns a boolean.

alert('apple, orange, apricot'.split(', ').filter(function(item, index) {
    return item.indexOf('a') == 0; 
}));
alert('apple, orange, apricot'.split(', ').filter(function(item, index) {
    return /^a/.test(item); 
}));
Sign up to request clarification or add additional context in comments.

Comments

2

You have to trim the spaces from the item before checking.

Regex to check if start with: ^a

var fruit = 'apple, orange, apricot'.split(',');
fruit = $.grep(fruit, function (item, index) {
    return item.trim().match(/^a/);
});
alert(fruit);

Other solution:

var fruits = [];
$.each(fruit, function (i, v) {
    if (v.match(/^a/)) {
        fruits.push(v);
    }
});
alert(fruits);

1 Comment

Fantastic. Thanks alot. Im very new to javascript so much appreciated
1

You can use charAt like so :

var fruit = 'apple, orange, apricot'.split(', ');
  fruit = $.grep(fruit, function(item, index) {
  return item.charAt(0) === 'a';
});
alert(fruit);

1 Comment

Brilliant. Cheers for that

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.