javascript排序没有多个条目

Mit*_*esh 1 javascript arrays sorting

这是我的代码

var array1 = [1,1, 30, 4, 21];
array1.sort();
console.log(array1);
// expected output: Array [1, 21, 30, 4]
Run Code Online (Sandbox Code Playgroud)

我想得到结果[1,4,21,30].sort函数应该给出预期的结果[1,1,4,21,30]它没有给出.此外,我应该采取什么方法来保持一个"1"?因为我不想重复

在此输入图像描述

Abd*_*rif 6

你可以结合sort()reduce()只是考虑在includesIE 中不起作用的考虑因素,你可以在语句下面的代码片段中看到

a.includes(x) ? a : [...a, x]
Run Code Online (Sandbox Code Playgroud)

表示一个if语句来删除重复元素并返回每个元素的单个值

var array1 = [1,1, 30, 4, 21];
var sortedArray1 = array1.reduce((a, x) => a.includes(x) ? a : [...a, x], []).sort()
console.log(sortedArray1);
// expected output: Array [1, 21, 30, 4]
Run Code Online (Sandbox Code Playgroud)