es6判断括号是否成对
时间: 2023-08-31 12:26:46 浏览: 87
### 回答1:
可以使用栈来实现判断括号是否成对。遍历字符串,当遇到左括号时入栈,当遇到右括号时出栈,如果栈为空或者栈顶元素不是对应的左括号,则说明括号不成对,返回false,否则继续遍历。最后如果栈为空,则说明括号全部成对,返回true,否则返回false。
示例代码如下:
```javascript
function isParenthesesMatched(str) {
const stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === '(' || str[i] === '[' || str[i] === '{') {
stack.push(str[i]);
} else if (str[i] === ')' && stack[stack.length - 1] === '(') {
stack.pop();
} else if (str[i] === ']' && stack[stack.length - 1] === '[') {
stack.pop();
} else if (str[i] === '}' && stack[stack.length - 1] === '{') {
stack.pop();
} else {
return false;
}
}
return stack.length === 0;
}
```
使用示例:
```javascript
console.log(isParenthesesMatched('()')); // true
console.log(isParenthesesMatched('()[]{}')); // true
console.log(isParenthesesMatched('(]')); // false
console.log(isParenthesesMatched('([)]')); // false
console.log(isParenthesesMatched('{[]}')); // true
```
### 回答2:
在ES6中,我们可以使用一种简单的方法来判断括号是否成对。这个方法是通过使用数组和循环来实现的。
首先,我们需要定义一个函数,它将接收一个字符串作为参数,这个字符串将包含各种字符,包括括号。接着,我们将创建一个空数组,用于存储遇到的所有括号。
接下来,我们使用一个for循环来遍历字符串中的每个字符。如果我们遇到了一个开括号(‘(’,‘[’,‘{’),我们就将它添加到数组中。如果我们遇到的是一个闭括号(‘)’,‘]’,‘}’),我们将检查数组中的最后一个元素是否与当前的闭括号相匹配。如果是匹配的,则我们将数组中的最后一个元素弹出。如果不匹配,或者数组为空,则说明括号没有成对出现,返回false。
最后,在循环结束后,我们将检查数组中是否还有剩余的括号。如果有,则说明括号没有成对出现,返回false。如果数组为空,则说明所有的括号都成对出现,返回true。
以下是一个示例函数的代码实现:
```javascript
function checkParentheses(str) {
let arr = [];
for(let i = 0; i < str.length; i++) {
if(str[i] === '(' || str[i] === '[' || str[i] === '{') {
arr.push(str[i]);
} else if(str[i] === ')' || str[i] === ']' || str[i] === '}') {
if(arr.length === 0) {
return false;
}
if((str[i] === ')' && arr[arr.length-1] === '(') ||
(str[i] === ']' && arr[arr.length-1] === '[') ||
(str[i] === '}' && arr[arr.length-1] === '{')) {
arr.pop();
} else {
return false;
}
}
}
return arr.length === 0;
}
```
使用这个函数,我们可以轻松地判断一个字符串中的括号是否成对出现。返回true表示括号成对,返回false表示括号没有成对出现。
### 回答3:
ES6提供了一个很简洁的方法来判断括号是否成对,即使用箭头函数以及Array的一些方法。我们可以通过以下步骤来实现该功能:
首先,我们将输入的字符串转成数组,并使用Array的filter方法来过滤掉除了括号之外的所有字符。这样我们就只剩下了括号。
接下来,利用reduce方法对数组进行遍历,同时使用一个计数器来判断括号是否成对。当遇到左括号时,计数器加1;当遇到右括号时,计数器减1。最后,如果计数器的值为0,则表示所有括号都成对,否则就表示有括号没有成对。
最后,我们将判断结果返回即可。
以下是一个用于判断括号成对的ES6箭头函数的实现代码:
const isMatchingBrackets = (str) => {
const brackets = str.split("").filter(char => ['(', ')', '[', ']', '{', '}'].includes(char));
let count = 0;
return !brackets.reduce((acc, char) => {
if (char === '(' || char === '[' || char === '{') {
count++;
} else {
count--;
}
return count < 0 ? acc + 1 : acc;
}, 0);
};
该函数会返回一个布尔值,true表示所有括号成对,false表示有括号没有成对。
阅读全文