Mik*_*799 1 javascript regex arrays function
我一直在做这个javascript挑战,我非常接近,但有些事情已经结束.这就是挑战:
给定一个包含三种类型大括号的字符串数组:round(),square []和curly {}您的任务是编写一个函数来检查每个字符串中的大括号是否正确匹配.如果每个字符串中的大括号匹配,则将1打印到标准输出(console.log),如果不匹配,则打印0(每行一个结果)
我的代码是这样的:
var infoToParse = [ ")(){}", "[]({})", "([])", "{()[]}", "([)]" ];
function checkBraces(infoToParse) {
var tabChars = infoToParse;
for (i= 0; tabChars.length - 1; i+=1) {
if (tabChars[i].charAt(0) === tabChars[i].charAt(tabChars[i].length-1)){
console.log(1);
}else{
console.log(0);
}
}
}
checkBraces(infoToParse);
Run Code Online (Sandbox Code Playgroud)
当前数组项的输出应为Output:0 1 1 1 0
正如评论中指出的那样,只有第一个和最后一个字符相同才会产生正确的解决方案.
您可以尝试以下技术:每次遇到一个开括号时保持一个堆栈,即圆形"(",方形"["或卷曲"{";将其推入堆栈.现在每当遇到一个右括号时,弹出一个元素如果这两个匹配,即两者都是相同的类型,那么继续直到堆栈和字符串都是空的.如果在任何点这些都不匹配然后中断并返回false.我将为它写一个代码并且很快发布.