Следующий рекурсивный алгоритм выбирает все комбинации k-элементов из упорядоченного множества:
i
вашей комбинации i
] с каждой из комбинаций элементов k-1
, выбранных рекурсивно из набора элементов, большего, чем i
. Итерацию выше для каждого i
в наборе.
Очень важно, чтобы остальные элементы были больше, чем i
, чтобы избежать повторения. Этот путь [3,5] будет выбран только один раз, поскольку [3] в сочетании с [5] вместо двух (условие исключает [5] + [3]). Без этого условия вы получаете варианты вместо комбинаций.
"JavaScript - Полное руководство" Фланагана дает следующее на странице 653:
var variables = ""
for (var name in this)
variables += name + "\n";
В Firefox вы можете увидеть вкладку DOM - легко, но это не ответ на ваш вопрос.
Цикл for in
, указанный в ответе Кинопико, будет работать, но не в IE. Подробнее об этом рассказывается в статье по ссылке ниже.
Для IE используйте RuntimeObject
.
if(this.RuntimeObject){
void function() {
var ro = RuntimeObject(),
results = [],
prop;
for(prop in ro) {
results.push(prop);
}
alert("leaked:\n" + results.join("\n"));
}();
}
См. Также: