js数组排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组排序相关的知识,希望对你有一定的参考价值。
逻辑有点麻烦 下图红色方框处是 数值
蓝色方框处是序号
如果传值过来是2 需要修改其序号 使用值为2的 排序靠前
修改其序号靠前即可 ,不知道我画的这么抽象,问题描述清楚没有
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));追问
为何又是你
能不能写的通俗易懂一点
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数组排序的主要内容,如果未能解决你的问题,请参考以下文章