迅雷笔试
// 各种括号匹配
function main(parens) {
var parensArr = parens.split('');
var stack = [];
for(var i = 0; i < parensArr.length; i ++) {
switch (parensArr[i]) {
case '(':
case '{':
case '[':
case '<':
stack.push(parensArr[i]);
break;
case ')':
case '}':
case ']':
case '>':
if(stack.length === 0 || !isMatch(parensArr[i])) {
return false;
};
break;
default:
break;
}
}
return stack.length === 0 ? true : false;
function isMatch(str) {
var popStr = stack.pop();
var leftStr = '';
switch (str) {
case ')':
leftStr = '(';
break;
case '}':
leftStr = '{';
break;
case ']':
leftStr = '[';
break;
case '>':
leftStr = '<';
break;
default:
break;
}
return popStr === leftStr ? true : false
}
}
// 数组去重
// es5:
Array.prototype.unique = function () {
return this.filter(function (value, index, arr) {
return arr.indexOf(value) === index;
})
}
// es6:
Array.prototype.unique = function () {
return [...new Set(this)]
}