计算数组重复元素
let arr = [1, 2, 3, 444, 4, 4, 4]
//使用循环
function repeatNum (arr, nuber) {
let newarr = []
while (arr.indexOf(nuber) >= 0) {
let index = arr.indexOf(nuber)
newarr.push(arr[index])
arr.splice(index, 1)
}
return newarr.length
}
console.log(repeatNum(arr, 4))
//使用递归算法
function repeatNum (arr, str, newarr) {
let index = arr.indexOf(str)
if (index <= 0) {
return newarr.length
}
newarr.push(arr[index])
arr.splice(index, 1)
return num(arr, str, newarr)
}
console.log(repeatNum(arr, 4, []))
字符串重复元素
将字符串转换为数组使用以上数组的方法
超简单算法:
var str = '23,4324234ll;f'
str.split('').forEach(item => {
console.log(item + '出现了:' + (str.split(item).length - 1))
})
冒泡排序
var arr = [12, 3, 46, 43, 21]
for (let i = 0; i <= arr.length; i++) {
for (let j = i + 1; j <= arr.length; j++) {
let num1 = arr[i]
let num2 = arr[j]
if (num2 < num1) {
arr[i] = num2
arr[j] = num1
}
}
}
console.log(arr)
颠倒数组顺序
let arr = [1, 2, 3, 123, 523, 123]
let endIndex = arr.length - 1
arr.forEach((item, index) => {
if (endIndex <= index) {
return
} else {
let first = item
let last = arr[endIndex]
arr[endIndex] = first
arr[index] = last
endIndex -= 1
}
})
console.log(arr)
展开二维数组
const arr = [[12, 2], [23, 5], [55, 67], [12, 23]];
console.log(arr.reduce((acc, cur) => {
return acc.concat(cur)
}))