Javascript - sort array based on another array

后端 未结 22 1793
鱼传尺愫
鱼传尺愫 2020-11-22 03:45

Is it possible to sort and rearrange an array that looks like this:

itemsArray = [ 
    [\'Anne\', \'a\'],
    [\'Bob\', \'b\'],
    [\'Henry\', \'b\'],
             


        
22条回答
  •  执念已碎
    2020-11-22 04:05

    In case you get here needing to do this with an array of objects, here is an adaptation of @Durgpal Singh's awesome answer:

    const itemsArray = [
      { name: 'Anne', id: 'a' },
      { name: 'Bob', id: 'b' },
      { name: 'Henry', id: 'b' },
      { name: 'Andrew', id: 'd' },
      { name: 'Jason', id: 'c' },
      { name: 'Thomas', id: 'b' }
    ]
    
    const sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ]
    
    Object.keys(itemsArray).sort((a, b) => {
      return sortingArr.indexOf(itemsArray[a].id) - sortingArr.indexOf(itemsArray[b].id);
    })
    

提交回复
热议问题