我正在处理一些导出的名册信息,这些信息已转换为JSON。我有一个包含大约400个对象的数组。
[
{
name: "Bloggs, Joe",
position: "Employee",
monday: "0700-1700 MC1",
tuesday: "0600-1800 PX1",
wednesday: "0600-1800 PX1",
thursday: "RDO",
friday: "RDO"
},
{
name: "Doe, John",
position: "Employee",
monday: "0700-1700 Px1",
tuesday: "0600-1800 MC1",
wednesday: "0600-1800 MC!",
thursday: "RDO",
friday: "RDO"
{,
{
name: "Smith, Aaron",
position: "Employee",
monday: "RDO",
tuesday: "RDO",
wednesday: "RDO",
thursday: "0700-1700 MC1",
friday: "0800-2000 PX2"
}
]
我编写了一个JS函数,该函数以星期几和班次标签为参数,并返回从事该班次的人员的姓名。这按预期方式工作,问题是某人可能正在执行相同的职责但工作时间不同,从而导致功能返回<Not Found>
。我需要使用find
但匹配子字符串而不是完整字符串。而不是寻找的0700-1700 MC1
只是搜索MC1
,绝不会有两个人名册上的排班软件相同的工作使冲突不应该是一个问题。
这是我的完整字符串的代码
function rosterFind(dayOfWeek, searchString) {
// Check Roster Data exists and is not null
if (rosterData) {
let result = rosterData.find(x => x[dayOfWeek] === searchString);
return result ? result.name : "<Not Found>"
} else {
return "No Roster Data"
}
}
我该怎么办,rosterData.find()
但要使用类似的includes
代替完整字符串?我尝试了几种不同的方法,但收效甚微。我的JS有点生锈,因此可能很明显我很想念。
您尝试使用includes
吗?像这样:
let result = rosterData.find(x => x[dayOfWeek] && String(x[dayOfWeek]).includes(searchString));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句