js数组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组排序相关的知识,希望对你有一定的参考价值。

逻辑有点麻烦 下图红色方框处是 数值
蓝色方框处是序号

如果传值过来是2 需要修改其序号 使用值为2的 排序靠前

修改其序号靠前即可 ,不知道我画的这么抽象,问题描述清楚没有

var items = [
key:1,val:'a',
key:2,val:'b',
key:4,val:'c',
key:2,val:'d',
        key:5,val:'e'
    ];

function sortArray(items,keyNum)
return items.sort(function(a,b)
return (a.key == keyNum?0:a.key)>=(b.key == keyNum?0:b.key);
);


console.log(sortArray(items,2));

 主要还是使用js中array的sort函数,具体的sort函数讲解,可以参考下w3cschool

上面输出的结果如下:

参考技术A var sort = function(arr,n)

var idx = 1;

arr.sort(function(a,b)

if(b[1]!=n) return -1;

return 1;

);

for(var i=0,len=arr.length;i<len;i++)
arr[i][0] = String(idx++);

return arr;

;

console.log(sort([[1,1,'a'],[2,2,'b'],[3,4,'c'],[4,2,'d'],[5,5,'e']],2));

追问

为何又是你

能不能写的通俗易懂一点

参考技术B var sort = function(arr , num)
var temp;
for(var i=0;i<arr.length;i++)
if(arr[i][1] == num)
temp = arr[i];
arr.splice(i,1);
arr.unshift(temp);


for(var i=0;i<arr.length;i++)
arr[i][0] = (i + 1).toString();

return arr;

sort(array,2);

 你应该一次问清楚的

追问

可能是我还是没有描述的很清楚

在不改变顺序的情况下 只改那个值

追答

我这个运行结果应该就是你上面的两张图片吧 子数组第一个元素不变化是吧

js对象数组按照另一个数组排序

参考技术A 场景
下拉列表有4个选项
用户按照先后排序后保存
[2, 4, 1, 3]
保存完后,按照顺序进行排序

思路,两个数组,排序有点困难
如果变成一个数组排序,就方便了

我们给每个option新增一个排序属性sordId
这个sordId的值就是 option的id在 showArr中的索引位置

现在我们的options数组已经可以排序了

再写一个对象数组按照属性名排序的方法

最后输出

以上是关于js数组排序的主要内容,如果未能解决你的问题,请参考以下文章

js sort 数组中包含数组怎么排序

js如何对下面数组进行排序?

JS对象数组多条件排序

js数组排序

有一个js数组,已排序,现在需要移动某些元素到特定的位置,这种实现

js 数组 数据去重排序