首先很抱歉打扰了几次问过的问题。但我不得不说我已经阅读了有关字符串排列的相关问题,我无法弄清楚下面代码的实际问题。我想返回一个字符串的组合。请帮我找出错误! PS:我刚刚开始学习javascript!
$('.hotel-dropdown').click(function (e) {
var hotelroomid = $(this).attr('id').toString().concat('room');
$("#".concat(hotelroomid)).empty();
$.get('GetHotelRooms', { id: $(this).val() }, function (data) {
$.each(data, function (index, value) {
$('<option>').val(value.id).text(value.name).appendTo("#".concat(hotelroomid));
});
});
});
&#13;
答案 0 :(得分:1)
你的逻辑实际上是正确的,你刚刚在for循环中声明了i
而没有var
,这使得它成为全局并且给你错误。一旦纠正,它似乎正在起作用:
var result = [];
function doPerm(prefix, suffix, result) {
if (suffix.length === 0)
result.push(prefix);
else {
for (var i = 0; i < suffix.length; i++) {
doPerm(prefix + suffix.charAt(i), suffix.slice(0, i) + suffix.slice(i + 1), result);
}
}
}
function permAlone(str) {
var prefix = "";
var suffix = str;
doPerm(prefix, suffix, result);
return result;
}
console.log(permAlone('aab'));
&#13;
答案 1 :(得分:0)
这只是在一篇论文的背后思考但是。
for(i;i<string.length;i++) {
var s = string.slice(i,i+1);
var c = string.charAt(i);
var q = s.split("");
for(b=0;b<q.length;b++) {
var newArray = q.slice();
newArray.splice(b,0,c);
result.push(newArray.join());
}
}
有效吗?
更新这似乎有效!
<script>
var string = "aab";
var result = [];
for(i=0;i<string.length;i++) {
var c = string.charAt(i);
var q = string.split("");
q.splice(i,1);
console.log("first");
console.log(q);
console.log(c);
for(b=0;b<q.length;b++) {
var newArray = q.slice();
newArray.splice(b,0,c);
result.push(newArray.join());
}
}
console.log(result);
</script>