gpt4 book ai didi

javascript - 根据另一个属性仅对数组中的一个属性进行排序

转载 作者:行者123 更新时间:2023-11-29 19:41:05 25 4
gpt4 key购买 nike

我有一个 Javascript 数组,它有 2 个属性 idsortedPosition

我想根据 id 对数组进行假排序,并修改 sortedPosition 以反射(reflect)对象在该数组中的排序位置。

例如:

输入数组:

[
{
"id" : 34,
"sortedPosition" : 2
}, {
"id" : 3,
"sortedPosition" : 1
}, {

"id" : 344,
"sortedPosition" : 0
}
]

输出数组:

[
{
"id" : 34,
"sortedPosition" : 1
}, {
"id" : 3,
"sortedPosition" : 0
}, {
"id" : 344,
"sortedPosition" : 2
}
]

我想到了一个看起来很糟糕的解决方案,它涉及 2 个额外的 deepCloned 数组副本,而且看起来不对。必须有一个更优雅的解决方案。

感谢您的帮助。

最佳答案

I came upon a solution which looks pretty bad, it involves 2 extra copies of deepCloned arrays

数组的浅拷贝应该足够了:

arr.slice() // create new array with the same objects
.sort(function(a,b){return a.id-b.id;}) // sort that (leave original untouched)
.forEach(function(o,i){o.sortedPosition = i;}); // update the objects

关于javascript - 根据另一个属性仅对数组中的一个属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com