1.map:遍历数组,返回回调返回值组成的新数组
var animal = [
{ name: '狮子', age: 3 },
{ name: '老虎', age: 4 },
]
var result2 = animal.map((item) => {
return item
})
console.log(result2)
//0: {name: '狮子', age: 3}
//1: {name: '老虎', age: 4}
2.filter过滤
//filter
var fruits = ["苹果", '香蕉', '橘子']
var result5 = fruits.filter((item) => {
return item != '苹果'
})
console.log(result5) //香蕉,橘子
需要注意的是filter函数存在一个隐式转换机制,我们在筛选数组里面的元素时,符合条件表达式的元素会被filter函数默认转换成true并通过return值返回并添加到一个新的数组当中,而不满足true
,即默认被转换为false的元素会自动的过滤掉,例如:
var arr = [1,2,3,45,65,87,456,0,'',false,NaN,undefined,null]
var str = arr.filter(function(v) {
return v
})
console.log(str) -->输出[1, 2, 3, 45, 65, 87, 456]
3. some(一真则真)/every(一假则假)
var flowers = [
{ name: '月季', num: '10' },
{ name: '玫瑰', num: '99' },
]
var result = flowers.every(function (flower) {
return flower.num > 10
})
console.log(result) //false
var result1 = flowers.some(function (flower) {
return flower.num > 10
})
console.log(result1)//true
4.join 通过指定连接符生成字符串
var num = [1, 2, 3]
var result4 = num.join('/')
console.log(result4) //输出:1/2/3
5.sort/reverse 排序和反转数组 这两个皆改变原数组
//reverse
var num = [12, 3, 45, 33]
var result = num.reverse()
console.log(result) //[33,45,3,12]
console.log(num)//改变了原数组 [33,45,3,12]
//sort
var num = [12, 3, 45, 33]
function compare(a, b) {
if (a > b) {
return 1
} else if (a < b) {
return -1
} else {
return 0
}
}
var result = num.sort(compare)
console.log(result) //[3, 12, 33, 45]
console.log(num)// [3, 12, 33, 45]
6.push/pop:数组末尾推入和弹出 改变原数组,
var subject = ['Math', 'Biology', 'Geography']
var result1 = subject.push('PE')
console.log(result1)//4 末尾添加,返回数组长度
console.log(subject)//['Math', 'Biology', 'Geography', 'PE']
var result2 = subject.pop('PE')
console.log(result2)//PE 末尾弹出 返回操作项
console.log(subject)// ['Math', 'Biology', 'Geography']
7.unshift/shift 数组头部推入和弹出,推入返回长度,弹出返回操作项
var subject = ['Math', 'Biology', 'Geography']
var result1 = subject.unshift('PE')
console.log(result1)//4
console.log(subject)// ['PE', 'Math', 'Biology', 'Geography']
var result2 = subject.shift('PE')
console.log(result2)//PE
console.log(subject) //['Math', 'Biology', 'Geography']
总结:不管数组头部推入还是数组尾部推入均返回数组长度,不管数组头部弹出还是数组尾部弹出均返回操作项,即弹出的是谁7=
8.concat连接数组,两个或多个
var a = [1, 2, 3]
var b = [4, 5, 6]
var c = [7, 8, 9]
var result3 = a.concat(b).concat(c)
console.log(result3) //[1, 2, 3, 4, 5, 6, 7, 8, 9]
9.slice(start,end) 返回截断后的新数组,但不改变原数组
var a = [1, 2, 3]
var result3 = a.slice(0, 2) //下标值前闭后开
console.log(result3)//[1,2]
console.log(a)//[1,2,3]
10.splice(start,number,value_) :返回删除元素组成的数组,value为插入项,改变原数组
11.indexOf/lastIndexOf(value,fromIndex):查找数组项,返回对应的下标
var a = [1, 2, 3, 3]
var result3 = a.indexOf(3) //2
console.log(result3) //不改变原数组 [1,2,3,3]