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"?因为我不想重复
你可以结合sort()
并reduce()
只是考虑在includes
IE 中不起作用的考虑因素,你可以在语句下面的代码片段中看到
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)