【发布时间】:2022-12-18 06:37:17
【问题描述】:
当用户输入 url 时,我试图遍历一个对象,以便在子字符串与我的对象中任何 url 的开头不匹配之前不会抛出错误消息。
目的:
export const urlStrings: { [key: string]: string } = {
'www.costco.com': '',
'www.walmart.com': '',
'www.google.com': '',
'www.facebook.com': '',
}
所以用户将键入并且不会抛出错误,直到子字符串不正确:
w
ww
www.
www.c
www.ca <--- this should throw error
但是,因为我将 subString 设置为 1,所以它只给我 url(项目)的第一个字母。我想获得从第一个字母到递增索引的所有内容。我在那里有一个中断,可以停止 for 循环。
const correctUrl = (value: string | null): string => {
let errorMessage = ''
let item: string
let subString = 1
if (value && typeof value === 'string') {
// eslint-disable-next-line guard-for-in
for (item in urlStrings) {
if (value?.length <= item?.length && subString <= item?.length) {
if (item.substring(0, subString) === value.substring(0, subString)) {
errorMessage = ''
break
}
}
subString += 1
}
} else {
errorMessage = 'Throw error'
}
return errorMessage
}
任何建议?
【问题讨论】:
标签: javascript typescript algorithm