compareBottomFirst (items) {
    if (items.length===1) { return items }

    if (items[0].struct != 'datamatrix') {
      return items
    }

    // sort descending
    items.sort((a, b) => b.position.y - a.position.y)

    return [ items[0] ]
  }
/**
   *
   * compare items, and choose the first one from bottom to top
   *
   */
compare items, and choose the first one from bottom to top
compare items and choose the first one from bottom to top
compareBottomFirst (items) {
    if (items.length===1) { return items }
    if (items[0].struct != 'datamatrix') {
      return items
    }
    items.sort((a, b) => b.position.y - a.position.y)
    return [ items[0] ]
  }
compareBottomFirst ( items ) { if ( items . length === 1 ) { return items } if ( items [ 0 ] . struct != 'datamatrix' ) { return items } items . sort ( ( a , b ) => b . position . y - a . position . y ) return [ items [ 0 ] ] }
compare items, and choose the first one from bottom to top
compare items and choose the first one from bottom to top
// sort descending