当我想用JavaScript *解决排序问题时,我发现 false布尔值比 true布尔值糟。为什么?
我尝试了以下内容:
console.log(false < true) //return true
console.log(true < false) //return false
我的问题:
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)
答案 0 :(得分:1)
false
强制0
true
1
答案 1 :(得分:0)
强制类型。
要评估>
的结果,JS将布尔值强制为数字。 True变为1,False变为0。
答案 2 :(得分:0)
这是因为(?<!\d)\d{14}(?!\d)
的值为false
,而0
的值为true
。因为1
,1 > 0
,反之亦然。