forEach map filter every some findIndex用法

var data = ['张三', '李四', '王五', '老王', '小明', '小芳',123,'']
//forEach, for ...of ..就是遍历,不会返回,也不会改变原数据 
/* var c = data.forEach((value, index, arr) => {
    return value;
})
console.log(c)
console.log(data)
 */
for (var key of data) {
    console.log(key)
}

//map根据返回值生成一个新的数组,不改变原数组
var a = data.map((value, index, arr) => {
    // return value == '张三';
    return value;
})
console.log(a) 

//filter()遍历数组,有返回值,根据 返回值 true 或者 false 来决定 循环的当前项 要不要被添加到返回的新数组里,过滤
//好比买东西,有没有好东西,我去看了一眼,如果有好东西就把所有的好东西都拿出来
 var b = data.filter((value, index, arr) => {
    // return value == '张三';
    //这里返回值相同是因为只要value存在就为真
    
    return value;
})
console.log(b) 
// console.log(data)
//find条件为真则直接返回不再继续判断
//好比买东西,有没有好东西,我去看了一眼,如果有好东西就返回就把他拿出来
 var f = data.find((value) => {
    // return typeof value=='string'
    return typeof value
})
console.log(f) 
//ervery()数组中每个值都满足条件返回true,否则返回false,不会改变原数组
//好比买东西,我问老板是不是全都是好东西,我去看了一眼,如果全部都是好东西就返回true
 var d = data.every((value) => {
    // return typeof value == 'number';
    return typeof value == 'string';
    
})
console.log(d) 
//some只要有一个为真就返回true不再继续判断
//我问老板有没有好东西,我去看如果有好东西就返回true
 var e = data.some(value => {
    return typeof value == 'number';
    // return typeof value == 'string';
})
console.log(e) 
//some every 与filter,find的区别  只判断有没有好东西,判断之后还要拿出来
//findInex()返回第一个满足条件的索引(下标)
 var f = data.findIndex((value) => {
    return typeof value=='string'
})
console.log(f) 

你可能感兴趣的:(javascript)