【问题标题】:How to get the position of an array before it was sorted如何在排序之前获取数组的位置
【发布时间】:2022-10-13 07:54:51
【问题描述】:

所以基本上我有一个包含很多数字的数组。 我想对它进行排序,排序确实有效,但是在我排序之后,我想知道排序后的数字在哪个位置。 这是我的代码:

console.log(leaderBoard1.sort((a,b)=>b-a));

好吧,它会返回所有值,例如: ['1', '2', '3'] 等等, 但我基本上想要的是得到它的位置。 位置的意思是如果我们想从数组中获取一些东西,我们会这样做:array[0] 对吗?我想得到这样的数组[位置]之间的位置。

谢谢

【问题讨论】:

  • this 是你想要的吗?
  • 不太清楚你的意思是什么...我基本上想要的是获得它的位置。请展示您到目前为止所做的工作以及预期的结果应该是什么样子。

标签: javascript arrays


【解决方案1】:

您必须首先捕获每个项目的位置,{item, index},然后根据 item 属性对列表进行排序,如下例所示:

const list = [5,0,2,3,8,9,5,6,8,4,1],

sorted = list
    //first capture the position of every element
    .map((item, index) => ({item, index}))
    //Now sort based on item
    .sort((a,b) => a.item - b.item);
    
console.log( sorted );

【讨论】:

    【解决方案2】:

    如果要对索引进行排序,可以将数据转换为保存索引值的对象,然后对其进行排序。

      leaderBoard1 = [1,3,4,8,1]
        let sorted = leaderBoard1.map((val,index) => {return {data: val, index: index}}).sort((a,b)=>{ return b.data -a.data});
        
        console.log(sorted)
    

    【讨论】:

    • 虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请编辑您的答案以添加解释并说明适用的限制和假设。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多