arrays - 如何使数组为真或假?
问题描述
在 Code.org 上,我正在尝试进行一个测验,根据用户在数组中放置的内容来选择答案。但是,无论数组中有什么,它总是错误的。
我尝试将语句更改为具有多个等号,尝试向后执行并制作 if 语句if list !== [list]
,并尝试删除引号。没有任何效果。我也尝试correctlist
在 if 语句中定义变量,但这仍然产生错误。
var mylist = ["a". "b", "c"];
var correctlist;
if (mylist == ["a", "b", "c"]) {
correctlist = true;
} else {
correctlist = false;
}
console.log(correctlist);
它总是以虚假的形式出现。
我希望控制台日志显示为真,但它总是显示为假。
解决方案
你会注意到:["a", "b", "c"] == ["a", "b", "c"]
总是返回 false。
那是因为这是两个不同的数组。仅仅因为元素字符串匹配,数组就不一样了。
您将需要遍历元素以比较每个元素,将它们转换为可以通过普通相等比较的东西,或者使用具有“深度”相等的库。
JSON.stringify(["a", "b", "c"]) == JSON.stringify(["a", "b", "c"])
推荐阅读
- javascript - jQuery removeClass 在 Chrome 中不起作用
- java - 开启 GPS 功能 webview
- angular - 角度存储参考数据
- python - Django:如何通过管理员上传、显示、删除图像
- c# - 如何一键分别向多个收件人发送电子邮件
- apache-kafka - Kafka 主题中的消息数
- sed - sed 命令不会在当前 sed 版本的 mac 上运行
- python - PyCharm (Python 3.x) 修改类而不重新运行脚本
- api - 使用量子计算机的框架/API?
- git - 合并分支时的 Git 用户设置为 = 符号而不是当前用户