比如我现在有一个数组[1,2,2,3,4,4,5]
如果我输 3 或者传过来的是 3
出来的顺序是[3,1,2,2,4,4,5]
如果我输 4
出来的顺序是[4,4,1,2,2,3,5]
如果我输 2
出来的顺序是[2,2,1,3,4,4,5]
用JS for循环怎么实现
第1个回答 2015-05-06
var arr = [1,2,2,3,4,4,5];
var num = 3;
arr = arr.sort();
for(var i = 0;i<arr.length;i++){
if(arr[i]==num){
arr.splice(i,1);
arr.unshift(num);
}
}
console.info(arr);
这就是你想要的,想法就是在数组中匹配到num后移除数组中的该元素,并在数组首位插入一个num。追问
var temp;
for(var i=0;i<array.length;i++){
if(parseInt(array[i][2]) == num){
temp = array[i];
array.slice(i,1);
array.unshift(temp);
}
}
var num = 3;
arr = arr.sort();
for(var i = 0;i<arr.length;i++){
if(arr[i]==num){
arr.splice(i,1);
arr.unshift(num);
}
}
console.info(arr);
这就是你想要的,想法就是在数组中匹配到num后移除数组中的该元素,并在数组首位插入一个num。追问
传参是2 最后效果是
是JS 错加了个String
var temp;
for(var i=0;i<array.length;i++){
if(parseInt(array[i][2]) == num){
temp = array[i];
array.slice(i,1);
array.unshift(temp);
}
}
第2个回答 推荐于2016-10-14
var c_sort = function(arr,n){
for(var i =0,len = arr.length;i<len;i++)
if(arr[i] == n)
arr.unshift(arr.splice(i,1)[0]);
return arr;
};
console.log(c_sort([1,2,2,3,4,4,5],2));追问
var array = [[],[]];
var sort = function(arr,n){
return arr.sort(function(a,b){
if(b[1]!=n) return -1;
return 1;
});
};
console.log(sort(array,2));本回答被提问者采纳
for(var i =0,len = arr.length;i<len;i++)
if(arr[i] == n)
arr.unshift(arr.splice(i,1)[0]);
return arr;
};
console.log(c_sort([1,2,2,3,4,4,5],2));追问
如果该数组变成
下图
传参是 2 打到的效果是 2,2,1,3,4,4,5
已经有点绕晕了
var array = [[],[]];
var sort = function(arr,n){
return arr.sort(function(a,b){
if(b[1]!=n) return -1;
return 1;
});
};
console.log(sort(array,2));本回答被提问者采纳