0
我有一个代码块,我想将其转换为不用于while循环的递归块代码。建议?将for循环转换为递归函数
sprite = function(dataset, pos){
var size ={nrows : 3, ncolumns :3};
var data = [];
for(row = pos.row0; row < pos.row0+size.nrows; row++) {
for(column = pos.column0; column < pos.column0+size.ncolumns; column++) {
if(column == pos.column0) {
data.push([dataset[row][column]]);
} else {
data[row].push(dataset[row][column]);
}
}
}
return data;
}
是否有一个特定的原因,你宁愿使用递归?它通常不会为您节省任何时钟周期,并且可能难以理解/维护。 – jbabey
看起来好像没有任何好处,迭代版本在这种情况下会更具可读性和高性能 – Esailija
您将使用递归的原因是,如果您发现了某种真正有效且想要的东西放大它。如果你做了一些无效或无效的事情,无论多么微不足道,递归都会使效率低下。 –