0
votes

Pourquoi la valeur booléenne false est inférieure à la valeur booléenne true?

Quand j'ai voulu résoudre un problème de tri en JavaScript *, j'ai découvert que le faux booléen est lees que vrai booléen . Pourquoi?

J'ai fait ce qui suit:

const todos = [{
  text: 'running',
  completed: false
}, {
  text: 'walking',
  completed: true
}, {
  text: 'Studying',
  completed: true
}, {
  text: 'learn javascript',
  completed: false
}, {
  text: 'learn react',
  completed: true
}]

const sortTodos = function(todo) {
  todo.sort(function(a, b) {
    if (a.completed < b.completed) {
      return -1
    } else if (b.completed < a.completed) {
      return 1
    } else {
      return 0
    }
  })
}

sortTodos(todos)
console.log(todos)

Mon problème:

console.log(false < true) //return true
console.log(true < false) //return false


1 commentaires

Parce qu'un booléen true est interprété comme 1, false comme 0


3 Réponses :


0
votes

Tapez la coercition.

Pour évaluer le résultat de > , JS contraint booléen à nombre. True devient 1, false devient 0.


0 commentaires

1
votes

false contraindre à 0 d'autre part true contraindre à 1

console.log(+true)
console.log(+false)


0 commentaires

0
votes

C'est parce que false vaut 0 et true vaut 1 . Parce que 1> 0 , true> false et vice versa.


0 commentaires