吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 979|回复: 16
收起左侧

[已解决] 前端js数组对象问题求助

[复制链接]
Gask 发表于 2022-10-11 15:26
本帖最后由 Gask 于 2022-11-2 10:59 编辑

需求:
表1属于员工排班表 如下图      表2属于门禁记录 如下图
1665472796507.jpg    1665472742630.jpg
由上得知小胡旷工 没来上班

下图利用js提取出了排班表(数组) 考勤记录(对象)

时间得对应上 比如小红 小张 小明 小刘 是6.1号上班的 需要在6.1打过卡 如果谁没打卡就算旷工

该如何去筛选出旷工的人员

1665472722481.jpg

这仅少量数据 大佬们求教如果数据多了 该如何去遍历筛选数据

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

unmask 发表于 2022-10-11 19:54
[JavaScript] 纯文本查看 复制代码
const paibanArr = [
  ["小红", "小明", "小张", "小刘"],
  ["小张", "小刘", "小胡", "小楷"],
];
const menjinArr = [
  { time: "01", name: "小红" },
  { time: "01", name: "小明" },
  { time: "01", name: "小张" },
  { time: "01", name: "小刘" },
  { time: "02", name: "小张" },
  { time: "02", name: "小刘" },
  { time: "02", name: "小楷" },
];

// 由于排班表里没有日期属性,那就按照index+1当作日期来和门禁数据比对
const rs = paibanArr
  .map((pbs, i) =>
    pbs.filter((p) =>
      menjinArr
        .filter((m) => parseInt(m.time) === i + 1)
        .every((m) => m.name !== p)
    )
  )
  .flat();

console.log(rs); // [ '小胡' ]

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Gask + 1 + 1 我很赞同!

查看全部评分

daquange 发表于 2022-10-11 15:35
arr.filter(el=>el.name==''小胡)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
danran + 1 + 1 我很赞同!

查看全部评分

daquange 发表于 2022-10-11 15:39
daquange 发表于 2022-10-11 15:35
arr.filter(el=>el.name==''小胡)

arr.filter(el=>el.name==''小胡")   刚刚少了个”
n3iuarem3t 发表于 2022-10-11 15:44
本帖最后由 n3iuarem3t 于 2022-10-11 15:51 编辑

arr.includes("小胡")。
没仔细看需求,用楼上的。
bearkr 发表于 2022-10-11 16:10
本帖最后由 bearkr 于 2022-10-11 16:12 编辑

还能这样写,学习了!
我以为要遍历排班数组,然后到打卡数组里去比对呢
 楼主| Gask 发表于 2022-10-11 16:37
bearkr 发表于 2022-10-11 16:10
还能这样写,学习了!
我以为要遍历排班数组,然后到打卡数组里去比对呢

我就是想这样写~
 楼主| Gask 发表于 2022-10-11 16:39
daquange 发表于 2022-10-11 15:39
arr.filter(el=>el.name==''小胡")   刚刚少了个”

这样就匹配不到时间了吧
sgvvvv 发表于 2022-10-11 16:50
把表2按time分组 再把分组后的数组里的name和表1里对应的数组对比
 楼主| Gask 发表于 2022-10-11 16:58
sgvvvv 发表于 2022-10-11 16:50
把表2按time分组 再把分组后的数组里的name和表1里对应的数组对比

好的 有点理解了 谢谢大佬 但是大佬 我遇到一个问题 就是表1他是这样的 【【。。。】,【。。。】,【。。。】】 我遍历只能遍历到一组组这样的【】,【】,【】 遍历不到里面的内容怎么办
X-Control 发表于 2022-10-11 18:20
Gask 发表于 2022-10-11 16:58
好的 有点理解了 谢谢大佬 但是大佬 我遇到一个问题 就是表1他是这样的 【【。。。】,【。。。】,【。 ...

凭什么for循环中不能再for循环
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表