Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将排序转换为唯一排序_Javascript_Algorithm_Sorting_Caching - Fatal编程技术网

Javascript 将排序转换为唯一排序

Javascript 将排序转换为唯一排序,javascript,algorithm,sorting,caching,Javascript,Algorithm,Sorting,Caching,我正在尝试将此排序转换为唯一的排序: const sort=arr=>arr.sort((a,b)=>a-b) 我试过这个: const uniqSort = arr => { const breadcrumbs = {}; for(let i =0; i<arr.length; i++){ if(breadcrumbs[arr[i]]){ arr.splice(i,1) } else {

我正在尝试将此排序转换为唯一的排序:
const sort=arr=>arr.sort((a,b)=>a-b)

我试过这个:

const uniqSort = arr => {
    const breadcrumbs = {};
    for(let i =0; i<arr.length; i++){ 
        if(breadcrumbs[arr[i]]){ 
            arr.splice(i,1)
        } else { 
            breadcrumbs[arr[i]] = true;
        }
    }
    return arr.sort((a, b) => a - b);
};
const uniqSort=arr=>{
常量面包屑={};
for(设i=0;i a-b);
};
由于某种原因,它不能正常工作,有人知道为什么吗

当我输入
uniqSort([4,2,2,3,2,2,2])

输出是
[2,2,3,4]
,而不是在迭代时修改相同的数组

const uniqSort = arr => {
  const breadcrumbs = {};
  const newArray = [];
  for (let i = 0; i < arr.length; i++) {
    if (!breadcrumbs[arr[i]]) {
       breadcrumbs[arr[i]] = true;
       newArray.push(arr[i]);
    }
  }
  return newArray.sort((a, b) => a - b);
};


什么是唯一排序?您好,请添加一个示例,说明唯一排序将对您尝试排序的对象执行什么操作,以及所需的结果。从数组中删除任何重复项,然后对其进行排序示例:`` uniqSort([4,2,2,3,2,2,2]);//=>[2,3,4]uniqSort([1,5,2,1]);//[1,2,5]``从不
拼接
和阵列,同时从左到右循环。将
for
循环的顺序颠倒:
for(让i=arr.length-1;0完美答案!您可以通过删除block
{}
return
语句,并使用箭头函数的隐式返回:
const uniqSort=arr=>Array.from(…).sort(…)修改同一个数组有什么问题?我知道集合解决方案,最近我开始深入研究算法,所以我尝试不同的方法。你可以在这里找到更多。
const uniqSort = arr => {
  return Array.from(new Set(arr)).sort((a, b) => a - b);
};