JavaScriptでは、sort()メソッドを使って配列をソートすることができます。オブジェクトの配列の3つの要素、たとえばブール値である会社、スコア、日付でソートするには、配列内のオブジェクトの順序を決定する比較関数を使用します。以下はその例です：

```javascript
const arrayDeObjetos = [
  { empresa: true, puntuacion: 4, fecha: "2022-01-15" },
  { empresa: false, puntuacion: 2, fecha: "2022-01-10" },
  { empresa: false, puntuacion: 5, fecha: "2022-01-12" },
  { empresa: true, puntuacion: 3, fecha: "2022-01-17" },
  { empresa: false, puntuacion: 4, fecha: "2022-01-11" }
];

arrayDeObjetos.sort((a, b) => {
  if (a.empresa !== b.empresa) {
    return b.empresa - a.empresa;
  } else if (a.puntuacion !== b.puntuacion) {
    return b.puntuacion - a.puntuacion;
  } else {
    return new Date(b.fecha) - new Date(a.fecha);
  }
});
```

この例では、compare関数を使用して配列内の2つのオブジェクトa、bを比較し、順序を決定しています。a.companyとb.companyが異なる場合、b.company - a.companyが返され、companyがtrueに等しいオブジェクトが最初に配置されます。両方のオブジェクトのcompanyが等しい場合、スコアが比較され、スコア順に並べるためにb.score - a.scoreが返されます。スコアも等しい場合は、日付が比較され、new Date(b.date) - new Date(a.date)が返され、日付順に並べ替えられます。sort() がコールされると、配列は指定された条件に従ってソートされます。
Puedes ordenar un array en JavaScript usando el método sort(). Para ordenar por tres elementos de un array de objetos, como la empresa que es un valor booleano, la puntuación y la fecha, puedes utilizar una función de comparación que determine el orden de los objetos en el array. Aquí hay un ejemplo:

javascript 

const arrayDeObjetos = [
  { empresa: true, puntuacion: 4, fecha: "2022-01-15" },
  { empresa: false, puntuacion: 2, fecha: "2022-01-10" },
  { empresa: false, puntuacion: 5, fecha: "2022-01-12" },
  { empresa: true, puntuacion: 3, fecha: "2022-01-17" },
  { empresa: false, puntuacion: 4, fecha: "2022-01-11" }
];

arrayDeObjetos.sort((a, b) => {
  if (a.empresa !== b.empresa) {
    return b.empresa - a.empresa;
  } else if (a.puntuacion !== b.puntuacion) {
    return b.puntuacion - a.puntuacion;
  } else {
    return new Date(b.fecha) - new Date(a.fecha);
  }
});

console.log(arrayDeObjetos);

En este ejemplo, la función de comparación se usa para comparar dos objetos a y b en el array y determinar su orden. Si empresa de a y b son diferentes, se devuelve b.empresa - a.empresa, lo que hará que los objetos con empresa igual a true se coloquen primero. Si empresa es igual en ambos objetos, se comparan las puntuaciones y se devuelve b.puntuacion - a.puntuacion para ordenarlos por puntuación. Si la puntuación también es igual, se comparan las fechas y se devuelve new Date(b.fecha) - new Date(a.fecha) para ordenarlos por fecha. Después de llamar a sort(), el array se ordenará de acuerdo con las condiciones especificadas.