javascript - 为什么我不能将两个数组与“包含”进行比较?
问题描述
Javascript 不允许使用 ? 比较数组includes
?
看这个例子:
let x = [[1,2], [3,4]]
let y = x[0]
let z = [1,2]
console.log(y,z)
// Output: [ 1, 2 ] [ 1, 2 ]
console.log(x.includes(y), x.includes(z))
// Output: true false
我想必须x.includes(z)
是true
。
评论让我知道了 quretion check-if-an-array-contains-any-element-of-another-array-in-javascript,但它没有回答我的问题,因为我想检查数组是否有完全相同的元素includes
不仅使用了一些。
此外,这个问题how-to-compare-arrays-in-javascript并没有解释为什么includes
不起作用。它告诉了如何去做,这不是我的问题的重点。
解决方案
因为[1, 2] === [1, 2]
是假的。不同的数组不相等,即使它们的内容相同。(这适用于所有对象。)
推荐阅读
- javascript - React - 如果事件是从此组件当前呈现的元素触发的,则不要调用方法
- c# - 带有c#的excel表格,格式
- wordpress - 请指导如何在 wordpress 中制作特定页面用户的一部分
- dji-sdk - osdk 飞行控制器示例不起作用
- https - X-Forwarded-Proto https 在前端还是后端(HAProxy)?
- apache-spark - 在橙色数据挖掘中检索 Hive 表时出错 - Hive 表小部件
- docker - 用于 ios 的 bitbucket 管道和 docker 构建 Ionic 项目
- sharepoint - Microsoft Flow - Sharepoint“创建文件时”在子文件夹上触发
- javascript - 当用户在rails中使用AJAX调用查看帖子时如何将帖子标记为已读
- spring-boot - 使用“withSoapEnvelope”创建的 Spring WS 测试 MockWebServiceServer 响应为空