Javascript 这里可以消除变量吗?
在nczonline的这个函数中,我注意到左和右被复制到I和j,但此后就不再使用了。有没有办法消除左和右或i和jJavascript 这里可以消除变量吗?,javascript,Javascript,在nczonline的这个函数中,我注意到左和右被复制到I和j,但此后就不再使用了。有没有办法消除左和右或i和j function partition(items, left, right) { var pivot = items[Math.floor((right + left) / 2)], i = left, j = right; while (i <= j) { while (items[i
function partition(items, left, right) {
var pivot = items[Math.floor((right + left) / 2)],
i = left,
j = right;
while (i <= j) {
while (items[i] < pivot) {
i++;
}
while (items[j] > pivot) {
j--;
}
if (i <= j) {
swap(items, i, j);
i++;
j--;
}
}
return i;
}
功能分区(项目,左,右){
var pivot=项目[数学楼层((右+左)/2)],
i=左,
j=右;
而(我){
j--;
}
如果(i它只是在那里,因此在函数的其余部分重复使用时,它会更短
直接使用i
和j
作为参数名称不够描述性,因此他将它们分配给函数体中较短的变量。是的,您可以将i
的所有实例替换为left
,将j
的所有实例替换为right
但是为什么要这样做呢?这看起来像是快速排序的一部分?或者只是用i和j替换函数参数。是的,你可以这样做,但那样会减少函数签名descriptive@Chronial这就是文档的目的。@JosephSilber i和j的描述性与left和right差不多。作者使用了两个变量es b.c.他在写一篇教程,你永远不会在真实的生产代码中这样做。@employee-0-正确的答案是:是的。正确的答案是:为什么会这样?变量是内存中真实的位置,你可以作为资源使用,它们不是用来描述的。永远不要获取超过你需要的,从那里你可以进行描述或通信把密码给我。