How to filter data and show it on top of the array?

I am making a decentralized exchange in which I am trying to implement a search functionality where users put either token address, name, or symbol. But the challenge I am facing is that when users search for tokens like BUSD the token present in the user wallet will come on top. for example:-

suppose I have these tokens in my wallet and I am getting this response from web3

  [
    {
      "token_address":"0x0e262..........",
      "name":"Busy DAO",
      "symbol":"BUSY",
      "logo":null,
      "thumbnail":null,
      "decimals":"18",
      "balance":"685485000000000000000000"
    },{
      "token_address":"0x1f762..........",
      "name":"BUSD Token",
      "symbol":"BUSD",
      "logo":null,
      "thumbnail":null,
      "decimals":"18",
      "balance":"32491651588824863"
    }
  ]

Now if users searched BUS in their search box and they get a list of more than 20 or 30 tokens so I want to filter that array and want to match the symbol of searched token response and token present in my wallet and then shows the token present in a wallet on the top and show rest of the tokens according to their name or symbol (Alphabetic order) in the search list.

I tried to search this on the web but I didn't get anything regarding this.

Here is my code:

// wallet assets
const getWalletAssets = useMoralisWeb3ApiCall(moralisWeb3Api.account.getTokenBalances, {
  chain: 'bsc',
  address: connectedWallet
})

// Token Search filter (getting tokens)
const searchTokenName = coins.filter((c) => c.name.toLowerCase().includes(search.toLowerCase()))

// Sorting them according to their symbols (alphabetic order)
const searchToken = tokenData.sort((a, b) => a.symbol.localeCompare(b.symbol))

Perhaps this approach would be helpful. First filter the results that are in and out of the wallet, and then combine them into one array.

const searchResults = ['BNB','BNT','BORA','BSV','BTC','BTCB','BTCST','BTG','BTT','BUSD','DASH','DCR','DENT','DGB','DOGE','ELON','ENJ','EOS','ETC','ETH','EWT','FEI','FET','FIL'];
const walletCoins = ['BTC','DOGE','ETH', '1INCH'];

const resultInWallet = searchResults.filter((coin) => walletCoins.includes(coin));
const resultNotInWallet = searchResults.filter((coin) => !walletCoins.includes(coin));
const result = [...resultInWallet, ...resultNotInWallet];

console.log(result)
.as-console-wrapper{min-height: 100%!important; top: 0}

--- updated ---

const searchResults = [{symbol:'BNB'},{symbol:'BNT'},{symbol:'BTC'},{symbol:'BTCB'},{symbol:'BTCST'},{symbol:'BTG'},{symbol:'BTT'},{symbol:'BUSD'},{symbol:'DOGE'},{symbol:'ELON'},{symbol:'ETC'},{symbol:'ETH'},{symbol:'EWT'},{symbol:'FEI'}];
const walletCoins = [{symbol:'BTC'},{symbol:'DOGE'},{symbol:'ETH'},{symbol:'1INCH'}];

const resultObj = searchResults.reduce((acc, targetCoin) => {
  if (walletCoins.some((walletCoin) => walletCoin.symbol === targetCoin.symbol)) {
    acc.inWallet = [...acc.inWallet, targetCoin];
  } else {
    acc.notInWallet = [...acc.notInWallet, targetCoin];
  }
    
  return acc;
}, { inWallet: [],  notInWallet:[] });


const result = [...resultObj.inWallet, ...resultObj.notInWallet];

console.log(result);
.as-console-wrapper{min-height: 100%!important; top: 0}