JS中 map, filter, find, findIndex,some, every, forEach, for in, for of 用法

    科技2022-08-17  110

    JS中 map, filter, find, findIndex,some, every, forEach, for in, for of 用法

    总结: map():返回一个新的Array,每个元素为调用func的结果 filter():返回符合func条件的元素数组 find():返回第一个符合条件的元素对象 findIndex():返回第一个符合条件的元素对象的位置(索引) some():返回一个boolean,判断是否有元素是否符合func条件,只要存在一个符合就结束 every():返回一个boolean,判断每个元素是否符合func条件 forEach():没有返回值,只是针对每个元素调用func 1.map 有返回值,返回一个新的数组,每个元素为调用func的结果。

    let list = [1, 2, 3, 4, 5]; let other = list.map(value => value * 2); console.log(other);// [2, 4, 6, 8, 10]

    2.filter 有返回值,返回符合func条件的元素数组

    let list = [1, 2, 3, 4, 5]; let other = list.filter((value) => value % 2); console.log(other);// [1, 3, 5]

    3.find 有返回值,返回第一个符合条件的元素对象。如果没有符合条件的成员,则返回undefined。

    var arr = [{name: '张三', age: 12}, {name: '李四', age: 14}]; var obj = arr.find(i => i.name === '张三'); console.log(obj);// {name: '张三', age: 12}

    4.findIndex 有返回值,返回第一个符合条件的数组成员的位置(索引)。如果所有成员都不符合条件,则返回-1。

    [1, 2, 5, -1, 9].findIndex(n => n < 0) // 3 5.some 返回一个boolean,判断是否有元素符合func条件,如果有一个元素符合func条件,则循环会终止。 ```javascript let list = [1, 2, 3, 4, 5]; list.some(value => value > 3); // true

    6.every 返回一个boolean,判断每个元素是否符合func条件,有一个元素不满足func条件,则循环终止,返回false。

    let list = [1, 2, 3, 4, 5]; list.every(value=> d < 3 ); // return false

    7.forEach 没有返回值,只针对每个元素调用func。 优点:代码简介。

    缺点:无法使用break,return等终止循环。

    let list = [1, 2, 3, 4, 5]; let other = []; list.forEach(d=> other.push(d * 2)); console.log(other); // print: [2, 4, 6, 8, 10]

    8.for in for-in循环实际是为循环”enumerable“对象而设计的,for in也可以循环数组,但是不推荐这样使用,for–in是用来循环带有字符串key的对象的方法。

    缺点:**只能获得对象的键名,不能直接获取键值。但其实也可以arr[k]获取键值

    var obj = {a:1, b:2, c:3}; for (var k in obj) { console.log("obj." + k + " = " + obj[k]); } // "obj.a = 1" "obj.b = 2" "obj.c = 3"

    9.for of 循环可以使用的范围包括数组、Set和Map结构、某些类似数组的对象(比如arguments对象、DOM NodeList对象)、后文的Generator对象,以及字符串。

    // 字符串 let str = "hello"; for (let s of str) { console.log(s); // h e l l o } // 遍历数组 let list = [1, 2, 3, 4, 5]; for (let e of list) { console.log(e); } // 1 2 3 4 5 // 遍历对象 obj = {a:1, b:2, c:3}; for (let key of Object.keys(obj)) { console.log(key, obj[key]); } // a 1 b 2 c 3
    Processed: 0.018, SQL: 9