如何给数组的元素进行排序?

EdwardLong 2011-12-21 11:42:12
ids = ["s1","s2","s3","s4","s5","s6","s7","s8","s9","s10"]
我想通过一些方法对这个数组的元素进行任意的排序

例如把 ids[1]---ds[3] 放置与 ids[4] 的后面,得到结果如下
ids = ["s1","s5","s2","s3","s4","s6","s7","s8","s9","s10"]

请问有什么好的方法?
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2011-12-22
  • 打赏
  • 举报
回复

var ids = ["s1","s2","s3","s4","s5","s6","s7","s8","s9","s10"];
// 编写排序规则
function mm(a, b){
var a1 = +(a.substr(1));
a1 == 5 && (a1 = 1.5);

var b1 = +(b.substr(1));
b1 == 5 && (b1 = 1.5);

return a1 > b1 ? 1 : (a1 < b1 ? -1 : 0);
}
ids.sort(mm);
alert(ids);
SK猫 2011-12-22
  • 打赏
  • 举报
回复
5楼是我想到的,6楼的没看懂
峭沙 2011-12-22
  • 打赏
  • 举报
回复
	Array.prototype.transsituation = function(oIndex, tIndex, elemNum){
elemNum = elemNum || 1;
var arrbuf = this.splice(oIndex, elemNum);
this.splice(tIndex, 0 , arrbuf);
}
var arr = [0,1,2,3,4,5,6,7,8,9];
arr.transsituation(1, 3, 2);
alert(arr);

第一个参数是要移动的元素的起始位置,第二个参数是要移动的目标位置,都是从0开始计算,第三个元素是要移动的元素个数(可选,默认为1)
南老頭 2011-12-21
  • 打赏
  • 举报
回复
兄弟,你这叫数组重组,不叫数组排序, 自己个看着放吧
EdwardLong 2011-12-21
  • 打赏
  • 举报
回复
如果在数组内部不能进行元素排序,那么根据移动范围和目标位置,重新配置一个新的数组,那应该可以吧
p2227 2011-12-21
  • 打赏
  • 举报
回复
你的任意也太任意了吧,只能针对每一种模式编个程序

http://www.w3school.com.cn/js/jsref_obj_array.asp
EdwardLong 2011-12-21
  • 打赏
  • 举报
回复
自己搞掂,贴出主要代码?
请大家看看这思路有没有不妥的地方。
红色文字部分为数组重组
var rowList = ["s1","s2","s3","s4","s5","s6","s7","s8","s9","s10"]
rowList=rowList== null?(parentgrid.getAllRowIds()).split(","):rowList;//设置全局行ID列表值;
var newIdsArr = new Array();
var target = this.action=="up"? parseInt(this.result.target.index)-1:parseInt(this.result.target.index);
var beginIndex = parseInt(this.result.source.index) -1;//开始索引[grid.rowid = dom索引 -1]
var rowspanval = parseInt(this.result.source.rowspan);//合并行数
var endIndex = rowspanval + beginIndex;
var idsArr = rowList;
for(var i=0; i< idsArr.length; i++)
{
if(i==target)
{
for(var n=beginIndex; n<endIndex; n++ )
{
newIdsArr.push(idsArr[n]);
}
}
if(i < beginIndex || i> endIndex-1) {
newIdsArr.push(idsArr[i]);
}
}
rowList = newIdsArr;

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧