数组和对象常用方法汇总
数组API
- forEach 遍历所有元素
- every 判断所有元素是否都符合条件
- some 判断是否有至少一个元素符合条件
- sort 排序
- map 对元素重新组装,生成新数组
- filter 过滤符合条件的元素
// forEach
var arr = [1,2,3]
arr.forEach(function (item, index) {
//遍历数组的所有元素
console.log(index, item) // 0 1
1 2
2 3
})
//every
var arr = [1,2,3]
var result = arr.every(function (item, index) {
//用来判断所有的数组元素,都满足一个条件
if(item < 4) {
return true
}
})
console.log(result) //true
//some
var arr = [1,2,3]
var result = arr.some(function (item, index) {
//用来判断所有的数组元素,都满足一个条件
if(item < 2) {
return true
}
})
console.log(result) //true
//sort
var arr = [1,4,5,2,3]
var arr2 = arr.sort(function(a,b) {
//从小到大排序
return a - b
//从大到小排序
//return b - a
})
console.log(arr2) //[1,2,3,4,5]
//map
var arr = [1,2,3,4,5]
var arr2 = arr.sort(function(item, index) {
//将元素重新组装,并返回
return '<b>' + item + '</b>'
})
console.log(arr2) //[1,2,3,4,5]
//filter
var arr = [1,2,3]
var arr2 = arr.filter(function (item) {
if(item >= 2) {
return true
}
})
console.log(arr2)
console.log(arr2) //[2,3]
对象API
var obj = {
x: 100,
y: 200,
z: 300
}
for (key in obj) {
// 只获取对象自身的属性,而不是继承来的属性
if(obj.hasOwnProperty(key)) {
console.log(key, obj[key]) // x 100
y 200
z 300
}
}
一个能遍历对象和数组的forEach函数
function forEach(obj, fn) {
var key
if (obj instanceof Array) {
//判断是不是数组
obj.forEach(function(item, index) {
//注意,这里参数的顺序换了,为了和对象的遍历格式一致
fn(index, item)
})
} else {
//不是数组就是对象
for (key in obj) {
fn(key, obj[key])
}
}
}
var arr = [1,2,3]
forEach(arr,function(index,item) {
console.log(index,item)
})
var obj = {x:100, y:200}
forEach(obj, function(key,value) {
console.log(key,value)
})