冒泡排序
bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
}
return arr
}
二分法
sortBisection(arr) {
if (arr.length <= 1) return arr
const left = []
const right = []
const middleIndex = Math.floor(arr.length / 2)
const middleValue = arr.splice(middleIndex, 1)[0]
for (let i = 0; i < arr.length; i++) {
if (arr[i] < middleValue) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return this.sortBisection(left).concat(middleValue, this.sortBisection(right))
}
内置方法sort排序
sortObj(obj, property) {
return obj.sort(function (a, b) {
return a[property] - b[property]
})
}
对象根据属性排序
sortObj(obj, property) {
return obj.sort(function (a, b) {
return a[property] - b[property]
})
}
去重
delWeight(arr) {
let obj = {}
let newArr = []
for (let i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
newArr.push(arr[i])
obj[arr[i]] = 1
}
}
return newArr
}
function unique(arr) {
return Array.from(new Set(arr));
}
- 利用for嵌套然后splice去重(ES5中最常见)
function unique(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!');
return;
}
var arrary = [];
for (var i = 0; i < arr.length; i++) {
if (array.indexOf(arr[i]) === -1) {
array.push(arr[i]);
}
}
return array;
}
计算字符串中的字符出现次数
getOccurrence(str) {
const counter = {}
str.replace(/(\w{1})/g, function (val) {
counter[val] ? counter[val] += 1 : counter[val] = 1
})
return counter
}
网友评论