javascript - 获取不同大小的多个数组之间的数组差异
问题描述
一直在绕圈子。
例如,假设我有不同的时间段存储为此
let timechunks1 = [["09:00", "10:00", "11:00"], ["09:00", "10:00", "11:00"], ["09:00", "10:00", "11:00", "12:00"]]
let timechunks2 = [["09:00", "10:00", "11:00"], ["09:00", "10:00", "11:00"], ["09:00", "10:00"]]
for (let i=0; i< timechunks.length; i++) {
differences.push(_.difference(timechunks[0], timechunks[i]))
}
需要提取 12:00,因为它没有出现在其他人中。我得到的最接近的是下划线 _difference 但可惜它没有达到我的预期。
对于 timechunks1 我正在寻找返回“12:00” 对于 timechunks2 我正在寻找一种返回“11:00”的方法
添加了另一个示例
[
["09:00", "10:00", "11:00" ,"13:00"],
["09:00", "10:00", "11:00", "13:00"],
["09:00", "10:00", "11:00", "12:00"]
]
它将返回 ["13:00", "12:00"]
解决方案
在集合论术语中,您正在寻找的是对称差异。你可以通过取并减去交集来找到这个集合:
function symmetricDifference(...sets) {
return _.difference(_.union(...sets), _.intersection(...sets));
}
推荐阅读
- c - 通过引用递归函数传递而不初始化引用
- sql - SQL 信息显示在一行中
- reactjs - 如何在 HOC 上使用 refs 进行反应?
- laravel - 如何将文件注入http请求
- android - Android单元测试一个抛出异常的构造函数
- android - 我的 APK 需要 Internet 权限,但我没有在清单中请求它?
- node.js - 路由上的日志请求方法
- microsoft-graph-api - Microsoft Graph 在线卷曲到 Excel
- jquery - 在“弹出窗口”中输入文本
尽管我已经仔细研究了关于 Jquery 的 W3School 段落,但我对 Jquery 还是很陌生(阅读:全新)。那里似乎有许多未更新的问题。
但我被困在这里:
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/j
- javascript - 范围误差最大调用堆栈超出角度 6