Javascript 布尔值比较
我有一个javascript代码。 我正在循环一组布尔值。Javascript 布尔值比较,javascript,reactjs,Javascript,Reactjs,我有一个javascript代码。 我正在循环一组布尔值。 当'data.nextrow'为false时,我希望nextrow1也为false,但它正被设置为true console.log("before nextrow:",data.nextrow); **prints false** let nextrow1 = data.nextrow ? data.nextrow : true; console.log("after nextrow:",nextrow1); *
当'data.nextrow'为false时,我希望nextrow1也为false,但它正被设置为true
console.log("before nextrow:",data.nextrow); **prints false**
let nextrow1 = data.nextrow ? data.nextrow : true;
console.log("after nextrow:",nextrow1); **prints true**
我希望nextrow1设置为FALSE好,所以
data.nextrow?data.nextrow:true
这是
If data.nextrow is true = render all after ?
If data.nextrow is false = render all after :
使用它的方法之一是
If data.nextrow is true = render all after ?
If data.nextrow is false = render all after :
用于更改变量(真->假&假->真) 您只需使用:
function App() {
const [isTrue, setisTrue] = useState(false)
return (
<div>
<button onClick={() => setisTrue(!isTrue)}>Click for change boolean</button>
{isTrue ? <h1>Now isTrue is true</h1> : <h1>Now isTrue is False</h1>}
</div>
);
}
函数应用程序(){
常量[isTrue,setisTrue]=useState(false)
返回(
setisTrue(!isTrue)}>单击以更改布尔值
{是真的吗?现在是真的:现在是假的}
);
}
您可以使用代码>约定
let nextrow1 = !!data.nextrow;
如果data.nextrow
是一些错误的值(0
,false
,,,null
),而不是字符串“false”
,我在下面几行中实现了我的目标。如果它可以在一行完成,让我知道。data.nextrow可能为空
nextrow1 = false;
if(data.nextrow !== null){
if(data.nextrow === false){
nextrow1 = false;
}
}
如果您想以这种方式解释null
(即null
!=false
),您可以这样做一行:
nextrow1 = !(data.nextrow !== null && data.nextrow === false)
如果data.nextrow为null
nextrow1 = data.nextrow === null ? data.nextrow : !(data.nextrow === false)
如果data.nextrow为null,则会将nextrow1设置为null
,为什么希望将其设置为false
?您发布的代码不可能做到这一点。还要确保data.nextrow
的值不是字符串“false”,因为字符串“false”不是false
。当“data.nextrow”为false时,我希望nextrow1也为false,但它正在设置为true。它的钱包是假的。在控制台a中以蓝色打印?b:c
表示“如果a
测试为true
,那么结果应该是b
,否则c
”a?b:c,如果a为空,则取c。如果a存在,则以b为例。这就是我想要的。它不是“条件呈现”,而是一个简单的JavaScript三元表达式。不涉及渲染;这只是表达式求值。a?b:c,如果a为空,则取c。如果a存在,则以b为例。这就是我想要的。没错,所以条件呈现只是实现表达式求值的选项(a==null){setState(c)}(如果a!==null){setState(b)},尽管我建议在面向人类的代码中坚持使用Boolean(data.nextrow)
,并让机器(minifier)将其转换为!!data.nextrow
。
nextrow1 = data.nextrow === null ? data.nextrow : !(data.nextrow === false)