![](/img/trans.png)
[英]Is there a way in javascript to find out how many times a certain string is in an array?
[英]How to write an algorithm to find out how many times different employee were at the office at the same time?
公司需要知道在同一时间范围内有哪些员工在办公室
此练习旨在输出一个包含成对员工的表格以及他们在办公室中重合的频率。 输入:员工的姓名和他们的工作时间表,指明时间和小时数。 这应该是一个包含至少五组数据的 .txt 文件。 您可以包含以下示例中的数据:
示例 1:
输入
RENE=MO10:00-12:00,TU10:00-12:00,TH01:00-03:00,SA14:00-18:00,SU20:00- 21:00
ASTRID=MO10:00-12:00,TH12:00-14:00,SU20:00-21:00
ANDRES=MO10:00-12:00,TH12:00-14:00,SU20:00-21:00
输出:
ASTRID-RENE: 2
ASTRID-ANDRES: 3
RENE-ANDRES: 2
示例 2:输入:
RENE=MO10:15-12:00,TU10:00-12:00,TH13:00-13:15,SA14:00-18:00,SU20:00-21:00
ASTRID=MO10:00-12:00,TH12:00-14:00,SU20:00-21:00
输出:
RENE-ASTRID: 3
这是我到目前为止只比较两名员工的代码。 我正在从.txt 文件中获取数据。
const obj = {
ANDRES: ['MO10:00-12:00', 'TH12:00-14:00', 'SU20:00-21:00'],
RENE: ['MO10:00-12:00', 'TU10:00-12:00', 'TH01:00-03:00', 'SA14:00-18:00', 'SU20:00-21:00']
}
function loop1(obj){
let counter = 0
for(let i = 0; i < obj.ANDRES.length; i++){
for(let k = 0; k < obj.RENE.length; k++){
if(obj.ANDRES[i] === obj.RENE[k]){
counter++
}
}
}
console.log(`ANDRES-RENE: ${counter}`)
}
loop1(obj)
输出
ANDRES-RENE: 2
三个或三个以上的人怎么办?
您可以通过使用另外 2 个匹配每对的循环来比较超过 2 个人。 这类似于交换一些数字的排序算法。
var obj = { AVI: ["AVI hours"], BEN: ["BEN hours"], CAT: ["CAT hours"], DAD: ["DAD hours"], } var keys = Object.keys(obj) for (var i = 0; i < keys.length - 1; i++) { for (var j = i + 1; j < keys.length; j++) { var a = obj[keys[i]]; var b = obj[keys[j]]; var overlaps = countOverlaps(a, b) console.log(keys[i] + " and " + keys[j] + " have " + overlaps + " overlaps"); } } function countOverlaps(a_hours, b_hours) { // split and compare... return 2; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.