【发布时间】:2019-12-02 01:40:13
【问题描述】:
我想在不使用 sort() 的情况下按升序或降序对数组值进行排序。
我创建了一个函数,但我对它不满意。 我相信下面的代码可能会更短更简洁。
请告诉我在哪里修改,否则您也可以完全更改代码。先感谢您。
const func = arg => {
let flip = false;
let copy = [];
for(let val of arg) copy[copy.length] = val;
for(let i=0; i<arg.length; i++) {
const previous = arg[i-1];
const current = arg[i];
if(previous > current) {
flip = true;
copy[i] = previous;
copy[i-1] = current;
}
}
if(flip) return func(copy);
return copy;
};
l(func([5,2,8,1,9,4,7,3,6]));
【问题讨论】:
-
不清楚您的目标是什么。听起来您想要更短的代码;大多数人想要更高效的代码。这是当前的 n^2 算法。所以它肯定会更有效率。
-
请编辑标题以反映更具体的问题。
-
你能告诉我们你为什么不想使用
sort吗?
标签: javascript methods