דיסקליימר :
אין לי מושג ירוק בתכנות ומה שאני עומד לכתוב כאן הם שטויות במקרה הטוב.
אז.
קודם כל בשביל העוואנטה הייתי משתמש בסינטקס של ES6.
יענו
קוד PHP:
use strict ;
// use "let" and "const" , don't use var
2) השימוש ברגקס מיותר.
אתה הרי מפרק את המחרוזת למערך ועובר תו תו. אז תשתמש בפונקציה indexOf
יענו
קוד PHP:
const regOpen = '[([<' ;
if (regOpen.indexOf(textArr[i]) { textArr[i] => { stack.push(textArr[i])} }
// או שטות דומה
3) אתה צריך להחזיק מונה של כל סוג סוגרים. כשהסוגרים פותחות הוא עולה באחד וההפך.
ברגע שאחד המונים יורד מתחת לאפס בום! Game Over ואתה צריך לעשות ברייק מהלולאה. אין טעם להמשיך בה.
אני לא מצליח לעקוב אחרי הפלואו של הקוד כדי לדעת אם זה קורה. הרצת טסטים כדי לבדוק שזה עובד?
4) האופרטור הטרנרי שלך (בסוף) אחלה. תשתמש בזה יותר.
עריכה:
3.א )
וכמובן כמובן כמובן שברגקס אתה חייב לעשות אסקייפינג לתווים מיוחדים כמו סוגריים. (איך שכחתי את זה אני לא יודע)