JSFiddle - React, Tailwind, and code Playground

HTML

<input type="search">
<br>
<select multiple>
  <option value="1">ham</option>
  <option value="2">cheese</option>
  <option value="3">pizza</option>
  <option value="4">pancakes</option>
  <option value="5">oreos</option>
</select>

JavaScript

$('select').each(function(){
    var $select = $(this);
    $select.data('options', $select.find('option'));
});

function filter($select, search) {
    var $prev = null;
    var $options = $select.data('options');
    search = search.trim().toLowerCase();
    $options.each(function(){
        var $option = $(this);
        var optionText = $option.text();
        if(search == "" || optionText.indexOf(search) >= 0) {
            if ($option.parent().length) {
            		$prev = $option;
                return;
            }
            if (!$prev) $select.prepend($option);
            else $prev.after($option);
            $prev = $option;
        }
        else {
        	  $option.remove();
        }
    });
}

var $select = $('select');
$('input').on('keyup', function(){
		filter($select, this.value);
});