将数组按照sort排序,不管sort是多少,需要根据之前的大小顺序变成从1排序,sort重复的按照之前顺序忘后排,求大神指点,写了几个方法都有问题。let arr = [{sort:-2, id: 9},{sort:0, id: 10},{sort:1, id:8},{sort:2, id:1},{sort:4, id: 5},{sort:4, id: 7},{sort:6, id: 6},];let arrNew = [{sort:1, id: 9},{sort:2, id: 10},{sort:3, id:8},{sort:4, id:1},{sort:5, id: 5},{sort:6, id: 7},{sort:7, id: 6},]
2 回答

白猪掌柜的
TA贡献1893条经验 获得超10个赞
先 stable sort,再用@李十三的代码
// import Lodash...
_.sortBy(arr, [o => o.sort]);
let arrNew = arr.map((v, i) => (v.sort = i + 1, v));
添加回答
举报
0/150
提交
取消