我一直在盯着这个问题的答案,甚至在每次迭代中写下变量和诸如此类的东西.我只是不在这里得到这个过程.当我输入控制台日志时,我看到permute被称为input.length - 在它到达此行之前的1倍input.splice(i,0,ch); 当我完全迷失时很难说出这个问题,但我想有些好奇心是:每次调用permute时,它都是该函数的一个新实例,它有自己的闭包权吗?因此,函数内的变量变化不会影响其他调用中的变量?该函数每次被调用时都会返回permArr吗?而且我想这不一定会影响第一次通话的回归?(我的直觉告诉我第一次返回,函数停止运行).
感谢您的见解.
var permArr = [],
usedChars = [];
function permute(input) {
var i, ch;
for (i = 0; i < input.length; i++) {
ch = input.splice(i, 1)[0];
usedChars.push(ch);
if (input.length == 0) {
permArr.push(usedChars.slice());
}
permute(input);
input.splice(i, 0, ch);
usedChars.pop();
}
return permArr
};
Run Code Online (Sandbox Code Playgroud) 我正在使用Select2来设置我的选择框并添加功能,我想知道如何使搜索规则更加宽松.目前,如果我在下拉列表中有"新墨西哥",我可以搜索"墨西哥"或"新墨西哥"以匹配选择选项,但如果我输入"mexico new",我会"找不到结果".有没有办法扩展搜索功能以匹配搜索词,无论他们的顺序如何?
$(document).ready(function() {
$(".states").select2();
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<select class="states" style="width: 50%">
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="TB">Tshirt, Black</option>
</select>Run Code Online (Sandbox Code Playgroud)