大家好,又见面了,我是你们的朋友全栈君。
小白前端一个,公司项目,里面有一个数组增加,删除,去重,排序,找到相同元素个数等等…
这是冒泡排序
var arr = [10, 20, 1, 2];
var t;
for(var i=0;i<arr.length;i++){
for(j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
console.log(arr); //[1, 2, 10, 20]
for循环运行的次序是,外层先走一步,然后内层走完,然后外层再走一步,内层再走一圈。
具体来说,
i=0: j依次遍历0,1,2,3,4,5,6,7,在交换
接下来i=1; j依次遍历1,2,3,4,5,6,7
结果是剩下数中最小的
然后i=2;j遍历2,3,4,5,6,7
i=3;j走过3,4,5,6,7
.
.
.
最后的结果就是数组被排序了。
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
console.log(bubbleSort([10, 20, 1, 2]))
这个方法就是排序了,从小到大,对一个叫做arr的数组排序
function sortId(a,b){
return a.id-b.id
}
arr.sort(sortId);
此方法
for (let i = 0; i < arr.length;) {
let count = 0;
for (let j = i; j < arr.length; j++) {
if (arr[i].id === arr[j].id) {
count++;
}
}
newarr.push({
date: arr[i],
count: count
})
i+=count;
}
console.log(newarr);
//这里就是返回一个newarr的数组,里面有排序好的数组,还有相同元素的个数
快速排序
function quickSort(arr){
if(arr.length<=1){
return arr;
}
var pivotIndex = Math.floor(arr.length / 2) ;
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
console.log(quickSort([95]))
以上就是一个简单的数组应用,打完收工
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133463.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...