javascript - javascript:无法使用 array.every() 区分“真”和“假”
问题描述
下面的脚本封装了我对 .every() 的不理解。两个输出都是“T”,而我本来期望“F”。请注意,唯一的区别是数组条目是第一个中的字符串和第二个中的数字。我对 .some() 没有同样的问题。有人可以解释一下吗?谢谢。
let isNegative = curr => curr = "-1";
let isPositive = curr => curr = "+1";
let out1 = ["+1", "-1", "+1"].every(isPositive) ? "T" : "F";
console.log(out1); //->"T" instead of "F"
let out2 = [1, -1, 1].every(isPositive) ? "T" : "F";
console.log(out2); //->"T" instead of "F"
解决方案
它应该是==
或===
let isNegative = curr => curr == "-1";
let isPositive = curr => curr == "+1";
let out1 = ["+1", "-1", "+1"].every(isPositive) ? "T" : "F";
console.log(out1); //->"T" instead of "F"
let out2 = [1, -1, 1].every(isPositive) ? "T" : "F";
console.log(out2); //->"T" instead of "F"
推荐阅读
- ionic-framework - Ionic 2 - 当我从侧面菜单推送组件时选项卡消失
- sql - SQL 计数选择性文本
- python - 有一个部分固定的文件名(python)
- python-3.x - 如何通过 python 代码检测我的操作系统是 32 位还是 64 位
- spring - 无法对 @KafkaListener 注释的方法进行单元测试
- ios - layoutMarginsGuide 似乎有点过分?
- python-2.7 - AWS Lambda、python 2.7 和变量生命周期
- sql-server - 如何在sql server中添加具有自动增量的主键列
- javascript - 在表中单击时对 tbody 中的排序数据作出反应
- r - 卡方检验 (R) 无法解释的结果