1. map
返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
{
name: 'jack',
age: 18,
},
{
name: 'mad',
age: 20,
}
]
// 想到给每一项加个 child
const res = [
{
name: 'jack',
age: 18,
child: '没有'
},
{
name: 'mad',
age: 20,
child: '有'
}
]
// 怎么做
const a = a.map(function(item, index) {
// ...obj, es6 浅拷贝对象
return {
...item,
child: '有'
}
// es5 浅拷贝对象
return Object.assign(item, {child: '有'})
})
2.filter
filter 汉语意思 '过滤'
根据某个条件,从数组中过滤出你想要的子数组
const a = [
{
name: 'jack',
age: 18,
},
{
name: 'mad',
age: 20,
},
{
name: 'ha',
age: 30,
},
{
name: 'ha',
age: 60,
}
]
// 数组里面,我只想要 age 大于25的子数组
const res = [
{
name: 'ha',
age: 30,
},
{
name: 'ha',
age: 60,
}
]
const b = a.filter(function(item, index) {
if (根据某个条件) {
return true
}
})
3. find
find,汉语意思 '找到'
根据某个条件,从数组中 找到第一个 满足条件的元素
const a = [
{
name: 'jack',
age: 18,
},
{
name: 'aaa',
age: 60,
},
{
name: 'mad',
age: 20,
},
{
name: 'ha',
age: 30,
},
{
name: 'ha',
age: 60,
}
]
// 想到得到 age: 60 的第一个
let b = a.find(function(){
if (某个条件) {
return true
}
})
4. forEach
和 for 循环一样
const a = [
{
name: 'jack',
age: 18,
},
{
name: 'aaa',
age: 60,
},
{
name: 'mad',
age: 20,
},
{
name: 'ha',
age: 30,
},
{
name: 'ha',
age: 60,
}
]
5.commodity
commodity 判断一个值是否存在 存在返回 true 不存在返回false
6.reduce
educe 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
7.Object.keys()
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致。
8.object.values()
Object.values() 方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用 for...in 循环的顺序相同(区别在于 for-in 循环枚举原型链中的属性)。
9. ...拓展运算符
可以将一个数组转为用逗号分隔的参数序列。
10. join (原数组不受影响)
该方法可以将数组里的元素,通过指定的分隔符,以字符串的形式连接起来。
返回值:返回一个新的字符串
//将数组用 - 符号连接起来let arr =[1,2,3,4,5];
let str = arr.join('-');
console.log(str)//str = 1-2-3-4-5;
11. split (原数组不受影响)
该方法是用过指定的分隔符,将字符串分割成数组。
返回值:返回一个新的数组
let str = wqz-ttj;
let arr = str.split('-');
console.log(arr);// arr=['wqz','ttj'];
12. push(数组的最后面添加一个或者多个元素)
该方法可以在数组的最后面,添加一个或者多个元素
结构: arr.push(值)
返回值:返回的是添加元素后数组的长度.
13. pop(数组的最后面,删除一个元素)
该方法可以在数组的最后面,删除一个元素
结构: arr.pop()
返回值:返回的是刚才删除的元素.
14. unshift(数组的最前面,添加一个或者几个元素)
该方法可以在数组的最前面,添加一个或者几个元素
结构: arr.unshift(值)
返回值: 返回的是添加元素后数组的长度
15. shift(数组的最前面,删除一个元素)
该方法可以在数组的最前面,删除一个元素
结构: arr.shift()
返回值: 返回的是刚才删除的元素.
16. reverse (翻转数组)
结构:arr.reserse()
17. sort(排序)
该方法可以对数组进行排序.
let arr = [1,3,5,2,4,23,122,34];
//没有参数:时按照首字符的先后排序
arr.sort()//arr=[1,122,2,23,3,34,4,5];
//有参数
arr.sort(function(a,b){
return a-b;//从小到大排序
return b-a;//从大到小排序
})
18.concat(拼接成一个新的数组)
该方法可以把两个数组里的元素拼接成一个新的数组
返回值: 返回拼接后的新数组
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr = arr1.concat(arr2);//arr = [1,2,3,4,5,6];
arr1.push(arr2);//arr1 = [1,2,3,[4,5,6]];
19.slice 截取 出来
该方法可以从数组中截取指定的字段,返回出来
返回值:返回截取出来的字段,放到新的数组中,不改变原数组
结构1:arr.slice(start,end) ;从start下标开始截取,一直到end结束,不包括end
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(0,3)//newArr = [0,1,2];
结构2:arr.slice(start) ;从start下标开始截取,一直到最后
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice(2)//newArr = [2,3,4,5,6,7];
结构3:arr.slice( ) ;全部截取
let arr = [0,1,2,3,4,5,6,7];
let newArr = arr.slice()//newArr = [0,1,2,3,4,5,6,7];
20. splice
结构1: arr.splice(start,deletedCount) 纯删除
从start下标开始,删除几个
结构2: arr.splice(start,deletedCount,item) 替换
从start下标开始,删除几个,并在该位置添加item
结构3: arr.splice(start,0,item) 纯添加
从start下标开始,删除0个,并在该位置添加item,start开始全部往后移动
let arr = [1,2,6,7,8];
arr.splice(2,0,3,4,5);//arr = [1,2,3,4,5,6,7,8];
查找元素在数组中出现的位置
21. indexOf
该方法用来查找元素在数组中第一次出现的位置
结构: arr.indexOf(元素)
特殊用法:
(1) arr.indexOf (ele,fromIndex),从fromIndex这个下标开始,元素第一次出现的位置
用来判断元素是否存在于数组中!
if (arr.indexOf(ele) === -1){//说明元素不存在!!
console.log('元素不存在!)
} else {
console.log(' 元素存在! ')
}
22. lastIndexOf
该方法用来查找元素最后一次在数组中出现的位置
23.some
判断数组中有没有符合条件的项(只要有,就返回true),如果一个都没有,才返回false
let arr3 = [
{ name: "zs", age: 18, done: "notYet" },
{ name: "ls", age: 20, done: true },
{ name: "ww", age: 22, done: true }
];
let res5 = arr3.some(function(item) {
return item.done;
});
console.log(res5);
24. every
判断数组中所有的项是否满足要求,如果全都满足,才返回true,否则返回false
let res6 = arr3.every(function(item) {
return item.done;
});
console.log(res6);