1、forEach
返回值 1 数组的信息 2 数组的下标索引 没有办法终止循环 但是可以根据情况抛出一个错误 具体方法如下:
var arr = ['abc', 'bcd', 'cde']
arr.forEach(function(element, index) {
console.log(element);
console.log(index);
});
实现原理
Array.prototype.myforEach = function(fn) {
for (var i = 0; i < this.length; i++) {
fn(this[i], i)
};
}
arr.myforEach(function(element, index) {
console.log(element);
console.log(index);
});
2、some
根据一个条件验证数组中是佛有该元素 true false 如果函数的返回值为true那么停止遍历 some的返回值为true 如果知道遍历结果结束都没有条件为true那么返回false
var arr = ['abc', 'bcd', 'cde']
var bool = arr.some(function(element,index) {
console.log(index);
return element === 'abc'
})
console.log(bool)
3、every
验证数组的所有是否满足一个条件 返回的值也是true和false
var arr = ['abc', 'bcd', 'cde']
var rets = arr.every(function (element,index) {
return element.length === 3
})
console.log(rets);
4、find
找到数组中符合条件的第一个元素 和find方法一样
var user = [
{name:'张三',age:15},
{name:'张三',age:16},
{name:'张三',age:12},
{name:'张三',age:12},
{name:'张三',age:11},
{name:'张三',age:19}
]
var result = user.find(function (element,index) {
return element.age >= 15
})
console.log(result);
5、findIndex
找到数组中符合条件的第一个元素的下标
var user = [
{name:'张三',age:15},
{name:'张三',age:16},
{name:'张三',age:12},
{name:'张三',age:12},
{name:'张三',age:11},
{name:'张三',age:19}
]
var results = user.findIndex(function (element,index) {
return element.age >= 15
})
console.log(results);
找到所有符合条件的元素然后放到一个数组中 如果没有符合条件的那么返回空数组
var user = [
{name:'张三',age:15},
{name:'张三',age:16},
{name:'张三',age:12},
{name:'张三',age:12},
{name:'张三',age:11},
{name:'张三',age:19}
]
var sameAge = user.filter(function(element,index) {
return element.age >= 15
});
console.log(sameAge);
7、map
对所有的元素进行操作
//值类型
var arr2 = [1,2,3,4]
var After = arr2.map(function (element,index) {
return ++element
})
console.log(After)
// 复杂数据类型
var user = [
{name:'张三',age:15},
{name:'张三',age:16},
{name:'张三',age:12},
{name:'张三',age:12},
{name:'张三',age:11},
{name:'张三',age:19}
]
var age = user.map(function (element,index) {
element.age++
return element
})
console.log(age);
console.log(user);
// 这时候原来的user和现在的user是一样的 如果想要不影响原来的user那么就需要
// 进行深拷贝 extend方法
var arr3 = [1,3,4,1,5]
var has = arr3.includes(3)
console.log(has)
// user.includes({name:'张三',age:11}) 这样是不可以的
// 比较的是引用而不是具体的值
var zs = user[2]
var have = user.includes(zs)
console.log(have);