如何排列数组元素?

时间:2017-12-03 01:23:20

标签: javascript arrays indexof

我尝试使用许多不同的关键字进行搜索,但我无法获得我正在寻找的结果。

我创建了一个包含五个值的表:10,3,5,4,2 我在桌子上面有一排显示排名。

所以,在10以上,它应该说" 5" 高于3,它应该说" 2" 高于5,它应该说" 4" 高于4,它应该说" 3" 高于2,它应该说" 1"

我可以处理表格列。这是我不了解的主要剧本。

我以为我可以创建原始数据的重复数组并对副本进行排序 - 然后比较原始数据和重复数据以对它们进行排名。事实证明,当我对重复数组进行排序时,原始数据也会被排序。

我以为我可以创建2个重复的数组,而不是触及原来的数组。它仍然对所有阵列进行排序。那怎么办呢?

2 个答案:

答案 0 :(得分:1)

听起来您正在寻找如何clonedeep copy数组。当你做类似的事情时:

var a = [5,4,3,2,1]
var b = a;

数组b设置为引用数组a。但是,如果您采取切片或执行其他操作来获取数据的副本(而不是引用实际结构的内容),则可以克隆该数组。如下所示:

var a = [5,4,3,2,1]
var b = a.slice(0);
如果您更改b

会为您提供一个不会发生变化的数组a。有关详细信息,请参阅this等文章。

答案 1 :(得分:1)

您可以使用spread复制数组。从那里你可以做一个简单的sort()来获得你想要达到的等级:

const arr = [10, 3, 5, 4, 2];
const sortedArr = [...arr].sort((a,b) => a > b);

console.log(sortedArr);