나는 비정상적으로 대문자로 된 단어들의 목록을 대문자로 바꿔주는 함수를 가지고있다 :자바 스크립트 정규식 성능.
var line = "some long string of text";
["AppleScript", "Bluetooth", "DivX", "FireWire", "GarageBand",
"iPhone", "iTunes", "iWeb", "iWork", "JavaScript", "jQuery", "MacBook",
"MySQL", "PowerBook", "PowerPoint", "QuickTime", "TextEdit", "TextMate",
// ...
"Wi-Fi", "Xcode", "Xserve", "XMLHttpRequest"].forEach(function(name) {
line = line.replace(RegExp(name, "gi"), name);
});
이제 내가 직면하고있는 문제는 대부분의 입력 문자열이이 단어들 중 0과 3 사이의 평균을 포함한다는 것이다. 분명히 지금은 본질적으로 아무 것도하지 않는 함수 호출을 수십 개 (잠재적으로 수백 개, 배열은 시간이 지남에 따라 성장하는 기괴한 경향이 있습니다)하고 있습니다.
이 코드를 더 빠르게 만들 수 있으며 불필요한 함수 호출을 제거 할 수 있습니까?
예제 입력 :
내 아이폰 응용 프로그램 UIViewController에서 사용자 양식이 있습니다. 다시 응용 프로그램을 시작하면 UIView의 위치와 크기가 변경됩니다. (이러한 UIView는 키보드 위치에 따라 달라집니다.) 어딘가에 분명히 내 잘못이 있습니다. 백그라운드에서 응용 프로그램이 다시 시작되고 UIView 변경 사항을 수행 할 수있는 경우 진행되는 상황을 파악하려고합니다.
통화가 불필요하지 않은가요? 각 문자열을 대문자로 표시하려면 각 문자열을 확인해야합니다. 존재하지 않기 때문에 검사가 필요하지 않다는 것을 의미하지는 않습니다 ... –
@Sam하지만 전체 입력? 아니면 하나의 함수 호출로 모든 검사를 수행하는 똑똑한 정규 표현식을 만들 수 있습니까? –
나는 너의 요점을 보았다. –