向自身添加数组键,直到超过限制? [英] Add an arrays keys to themselves until exceeding a limit?
问题描述
在 var ary = [5,10,28,50,56,280]
中,我要尝试此数组的所有组合或子集,直到超出限制为止。
我想将该限制保存在变量中,并将所有加数推入数组。
var ary = [5,10,28,50,56,280]; var limit = 11; var result = []; var addends = []; for( var i = 0; i< = ary.length; i ++){if(ary [i]> limit){result.push(ary [i]); addends.push(ary [i]); } else if(ary [i] + ary [i]> limit){result.push(ary [i] + ary [i])addends.push(ary [i]); addends.push(ary [i]); }}
无论数组大小或大小如何,我将如何系统地执行此操作 limit
值?
我假设您要测试所有排列:
函数permutator(inputArr){
var results = [];
函数置换(arr,memo){
var cur,memo = memo || [];
for(var i = 0; i cur = arr.splice(i,1);
if(arr.length === 0){
results.push(memo.concat(cur));
}
permute(arr.slice(),memo.concat(cur));
arr.splice(i,0,cur [0]);
}
返回结果;
}
return permute(inputArr);
}
var permutations = permutator([5,10,28,50,56,280]);
console.log(permutations);
鉴于此,您应该能够添加代码来处理有关限制的模糊评论。
此代码从 @delimited 处被偷走而没有羞耻: JavaScript中的排列?
In var ary = [5,10,28,50,56,280]
I want to try all combinations or subsets of this array until I exceed a limit.
I want to save that limit in a variable and push all the addends into an array.
var ary = [5,10,28,50,56,280];
var limit = 11;
var result = [];
var addends = [];
for( var i = 0; i <= ary.length; i++ ){
if( ary[ i ] > limit ){
result.push( ary[ i ] );
addends.push( ary[ i ] );
}
else if( ary[ i ] + ary[ i ] > limit ){
result.push( ary[ i ] + ary[ i ] )
addends.push( ary[ i ] );
addends.push( ary[ i ] );
}
}
How would I do this systematically regardless of array size or limit
value?
I assume you want to test all permutations:
function permutator(inputArr) {
var results = [];
function permute(arr, memo) {
var cur, memo = memo || [];
for (var i = 0; i < arr.length; i++) {
cur = arr.splice(i, 1);
if (arr.length === 0) {
results.push(memo.concat(cur));
}
permute(arr.slice(), memo.concat(cur));
arr.splice(i, 0, cur[0]);
}
return results;
}
return permute(inputArr);
}
var permutations= permutator([5,10,28,50,56,280]);
console.log(permutations);
Given this, you should be able to add code to deal with your vague comment about a "limit".
This code was stolen without shame from @delimited here: Permutations in JavaScript?
这篇关于向自身添加数组键,直到超过限制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!