1.转字符串方法:
- toString()
- join()
const arr = [1,2,3,4,[7,8,9,[11]]]
//扁平化所有
console.log(arr.toString()); //1,2,3,4,7,8,9,11
//扁平化一层
console.log(arr.join());//1,2,3,4,7,8,9,11
console.log(arr.join(''));//12347,8,9,11
console.log(arr.join('-'));//1-2-3-4-7,8,9,11
const str = 'zarkz'
console.log(str.split('')); //[ 'z', 'a', 'r', 'k', 'z' ]
2.堆栈方法
- push() 返回值 => 增加数组后的长度
- pop() 返回值 => 删除的项目
- unshift() 返回值 => 增加数组后的长度
- shift() 返回值 => 删除的项目
const arr = [1,2,3,4]
console.log(arr.push(1011)); //5
console.log(arr.pop()); //1011
console.log(arr.unshift(101)); //5
console.log(arr.shift()); //101
3.排序方法
- reverse() 返回值 => 是倒序之后的源数组,意味着会修改原数组
- sort()返回值 => 排序之后的源数组,意味着会修改原数组
- 随机排序
const arr = [1,2,3,4,5,0]
const a = arr.reverse()
console.log(a); //[ 0, 5, 4, 3, 2, 1 ]
console.log(a === arr); //true
console.log(arr); //[ 0, 5, 4, 3, 2, 1 ]
console.log(arr,arr.sort((a,b) => a-b)); //[ 0, 1, 2, 3, 4, 5 ] [ 0, 1, 2, 3, 4, 5 ]
//随机排序
function compate() {
return Math.random() - 0.5
}
console.log(arr.sort(compate));//[ 0, 5, 4, 1, 2, 3 ]
4.删改方法
区间是[)左闭右开;
- slice() 返回值 => 是新数组,不会修改原数组。
- splice() 返回值 => 是删除元素组成的数组。会修改原数组。 splice(增加或者删除的位置, 指定删除元素的个数, 插入的值)
const arr = [1,2,3,4]
console.log(arr, arr.slice()); //[ 1, 2, 3, 4 ] [ 1, 2, 3, 4 ]
console.log(arr,arr.slice(2)); //[ 1, 2, 3, 4 ] [ 3, 4 ]
console.log(arr,arr.slice(2,3)); //[ 1, 2, 3, 4 ] [ 3 ]
console.log(arr,arr.slice(-2,-1)); //[ 1, 2, 3, 4 ] [ 3 ]
console.log(arr,arr.splice()); //[ 1, 2, 3, 4 ] []
console.log(arr,arr.splice(2)); //[ 1, 2 ] [ 3, 4 ]
console.log(arr,arr.splice(-2)) //[ 1, 2 ] [ 3, 4 ]
console.log(arr,arr.splice(0,3)); //[ 4 ] [ 1, 2, 3 ]
console.log(arr,arr.splice(0,0,300)); //[ 300, 1, 2, 3, 4 ] []
5.查找方法
- indexOf() 返回值 => 如果找到,返回的是索引值,如果找不到,返回值是-1
- includes 返回值 => 如果找到,返回的是true,如果找不到,返回值是false
const arr = [1,2,3,4]
console.log(arr.indexOf(1)); //0
console.log(arr.indexOf(10)); //-1
console.log(arr.includes(1)); //true
console.log(arr.includes(10)); //false
- find() 返回值 => 第一个符合条件的值
- findIndex() 返回值 => 第一个符合条件的索引值
const arr = [1,1,2,3,4]
//1
console.log(arr.find((n) => {
return n === 1
}));
//0
console.log(arr.findIndex((n) => {
return n === 1
}));
6.数组遍历
- forEach() 没有返回值
const arr = ['a','b','c','d','e']
arr.forEach((item,index,arr) => {
console.log(item,index,arr);
})
a 0 [ 'a', 'b', 'c', 'd', 'e' ]
b 1 [ 'a', 'b', 'c', 'd', 'e' ]
c 2 [ 'a', 'b', 'c', 'd', 'e' ]
d 3 [ 'a', 'b', 'c', 'd', 'e' ]
e 4 [ 'a', 'b', 'c', 'd', 'e' ]
- map() 有返回值
const arr = ['a','b','c','d','e']
const arrmap = arr.map((item,index,arr) => {
return item + '1'
})
console.log(arrmap); //[ 'a1', 'b1', 'c1', 'd1', 'e1' ]
const obj = {
name: 'zark',
age: 18
}
console.log(Object.keys(obj)); //[ 'name', 'age' ]
for(var key of Object.keys(obj)) {
console.log(key); //name age
}
console.log(Object.values(obj)); //[ 'zark', 18 ]
for(var value of Object.values(obj)) {
console.log(value); //zark 18
}
console.log(Object.entries(obj)); //[ [ 'name', 'zark' ], [ 'age', 18 ] ]
for(var [key,value] of Object.entries(obj)) {
console.log(key,value); // name zark age 18
}
const arr = [1,1,2,3,4]
const obj = {
name: 'zark',
age: 18
}
console.log(arr.keys(arr));
for(var key of arr.keys(arr)) {
console.log(key); //输出索引
}
console.log(arr.values(arr));
for(var value of arr.values(arr)) {
console.log(value); //输出值
}
console.log(arr.entries(arr));
for(var [key,value] of arr.entries(arr)) {
console.log(key,value);
}