Js数组常用方法
- 通用方法
-
- es6 新迭代方法 都不会改变源数组
- array.everey(callback(item, index, array))
- array.some(callback(item, index, array))
- array.filter(callback(item, index, array))
- array.forEach(callback(item, index, array))
- array.map(callback(item, index, array))
- array.reduce(callback)
通用方法
数组的遍历
var a =1
for (let i in [1, 2, 3, 4]) {
console.log(i)
}
[1, 2, 3, 4].forEach((item: number, index: number, array: Array<number>) => {
console.log(`${index}额${item}额${array[index]}`)
})
数组点长度,添加和删除元素
let array1: number[] = [1, 2, 3, 4]
array1.length = 3
console.log(array1)
array1.length = 5
console.log(array1)
console.log(array1[4] == undefined)
delete array1[1]
console.log(array1)
array.join(str)
console.log([1,2,3,4].join('=='))
array.reverse()
let array2: number[] = [1, 2, 3, 4]
array2.reverse()
console.log(array2)
array.slice(startIndex, endIndex)
console.log([1, 2, 3, 4, 5].slice(0, 2))
console.log([1, 2, 3, 4, 5].slice(1))
array.splice(index, num, itm1, item2 …)
let array3: Array<number> = [1, 2, 3, 4, 5]
let array3ret1: number[] = Array.prototype.splice.call(array3, 1, 2, 8, 9)
console.log(array3)
console.log(array3ret1)
Array.prototype.splice.apply(array3, [1, 3])
console.log(array3)
array3.splice(0, array3.length)
console.log(array3)
array.concat(array1, array2 …)
console.log([1, 2, 3].concat([2, 3 ,4], [1]))
array.indexOf(item)/lastIndexOf(item)
console.log([1, 2, 3, 4].indexOf(2))
console.log([1, 2, 3, 4].lastIndexOf(2))
console.log([1, 2, 3, 4].indexOf(5))
冒泡排序
let array4: Array<number> = [4, 5, 2, 8, 6]
for (let i: number = 0; i < array4.length; ++i) {
for (let j: number = 0; j < array4.length - i - 1; ++j) {
if (array4[j] < array4[j + 1]) {
let temp: number = array4[j]
array4[j] = array4[j + 1]
array4[j + 1] = temp
}
}
}
console.log(array4)
array.sort(callback)
array4.sort((v1: number, v2: number):number => {
return v1 > v2 ? 1 : -1
})
console.log(array4)
es6 新迭代方法 都不会改变源数组
array.everey(callback(item, index, array))
console.log([1, 2, 3, 4].every((item: number, index: number, array: number[]): boolean => {
return item > 2
}))
console.log([1, 2, 3, 4].every((item: number, index: number, array: number[]): boolean => {
return array[index] > 0
}))
array.some(callback(item, index, array))
console.log([1, 2, 3, 4].some((item: number, index: number, array: number[]): boolean => {
return item > 2
}))
array.filter(callback(item, index, array))
console.log([1, 2, 3, 4, 5].filter((item: number, index: number, array: number[]):boolean => {
return array[index] > 2
}))
array.forEach(callback(item, index, array))
interface StrArray{
length: number
}
function seeArray<T extends StrArray>(array :T[]):void {
array.forEach((item: T, index: number, array: Array<T>):void => {
console.log(item)
})
}
seeArray(['a', 'b', 'c', 'd'])
array.map(callback(item, index, array))
console.log([1, 2, 3, 4].map((item, index, array) => {
return item * 2
}))
array.reduce(callback)
console.log('------------')
console.log([1, 2, 3, 4, 5].reduce(
(prev, cur, inex, array) => {
console.log(prev + cur)
return prev + cur
}
))
原文 https://github.com/lidaguang1989/javascript-knowhow