DESKTOP-MK04A0R\chuck hace 3 años
padre
commit
8df77381d2
Se han modificado 5 ficheros con 206 adiciones y 0 borrados
  1. 57 0
      05/index.html
  2. 106 0
      05/src/index.js
  3. 16 0
      06/index.html
  4. 25 0
      06/src/index.js
  5. 2 0
      README.md

+ 57 - 0
05/index.html

@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <script src="./src/index.js"></script>
+</head>
+<body>
+    <script>
+        //map
+        let arr = [1,2,3]
+        let result = map(arr,function(item,index){
+            return item * 10
+        })
+        console.log(result)
+
+        //reduce
+        let result1 = reduce(arr,function(res,item){
+            return res + item
+        },0)
+        console.log(result1)
+
+        //filter
+        let result2 = filter(arr,function(item){
+            return item%2 === 0
+        })
+        console.log(result2)
+
+        //find
+        let result3 = find(arr,function(item){
+            return item > 7
+        })
+        console.log(result3)
+
+        //findIndex
+        let result4 = findIndex(arr,function(item){
+            return item > 1
+        })
+        console.log(result4)
+
+        //every
+        let result5 = every(arr,function(item){
+            return item > 2;
+        })
+        console.log(result5)
+
+        //some
+        let result6 = some(arr,function(item){
+            return item > 8;
+        })
+        console.log(result6)
+
+    </script>
+</body>
+</html>

+ 106 - 0
05/src/index.js

@@ -0,0 +1,106 @@
+/**
+ * 1、map函数
+ * @param {Array} arr 
+ * @param {Function} callback 
+ * @returns 
+ */
+function map(arr,callback){
+    let result = []
+    for(let i = 0;i < arr.length;i++){
+        result.push(callback(arr[i],i))
+    }
+    return result;
+}
+/**
+ * 2、reduce函数
+ * @param {Array} arr 
+ * @param {Function} callback 
+ * @param {*} initValue 
+ * @returns 
+ */
+function reduce(arr,callback,initValue){
+    let result = initValue
+    for(let i = 0;i < arr.length;i++){
+        result = callback(result,arr[i])
+    }
+    return result
+}
+
+/**
+ * 3、filter函数
+ * @param {Array} arr 
+ * @param {Function} callback 
+ * @returns 
+ */
+function filter(arr,callback){
+    let result = []
+    for(let i = 0;i < arr.length;i++){
+        if(callback(arr[i],i)){
+            result.push(arr[i])
+        }
+    }
+    return result
+}
+
+/**
+ * 4、find函数
+ * 找到数组中第一个满足条件的值
+ * @param {*} arr 
+ * @param {*} callback 
+ * @returns 
+ */
+function find(arr,callback){
+    for(let i = 0;i < arr.length;i++){
+        if(callback(arr[i],i)){
+            return arr[i]
+        }
+    }
+    return undefined
+}
+
+/**
+ * 5、findIndex函数
+ * 找到数组中第一个满足条件的下标
+ * @param {*} arr 
+ * @param {*} callback 
+ * @returns 
+ */
+function findIndex(arr,callback){
+    for(let i = 0;i < arr.length;i++){
+        if(callback(arr[i],i)){
+            return i
+        }
+    }
+    return -1
+}
+/**
+ * 6、every函数
+ * 必须所有都满足
+ * @param {*} arr 
+ * @param {*} callback 
+ * @returns bool
+ */
+function every(arr,callback){
+    for(let i = 0;i < arr.length;i++){
+        if(!callback(arr[i],i)){
+            return false
+        }
+    }
+    return true
+}
+
+/**
+ * 7、some函数
+ * 只要有一个满足
+ * @param {*} arr 
+ * @param {*} callback 
+ * @returns bool
+ */
+function some(arr,callback){
+    for(let i = 0;i < arr.length;i++){
+        if(callback(arr[i],i)){
+            return true
+        }
+    }
+    return false
+}

+ 16 - 0
06/index.html

@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <script src="./src/index.js"></script>
+</head>
+<body>
+    <script>
+        const arr = [1,2,3,4,2,3]
+        console.log(unique2(arr))
+    </script>
+</body>
+</html>

+ 25 - 0
06/src/index.js

@@ -0,0 +1,25 @@
+/**
+ * 去重
+ * findIndex
+ * indexOf
+ * @param {*} arr 
+ * @returns 
+ */
+function unique(arr){
+    const result = []
+    arr.forEach(item=>{
+        if(!result.includes(item)){
+            result.push(item)
+        }
+    })
+    return result
+}
+
+/**
+ * 集合法
+ * @param {*} arr 
+ * @returns 
+ */
+function unique2(arr){
+    return [...new Set(arr)]
+}

+ 2 - 0
README.md

@@ -3,6 +3,8 @@
 * 02 apply函数封装实现
 * 03 bind函数封装实现
 * 04 函数节流与防抖
+* 05 es6数组函数封装 map、reduce、filter、find、findIndex、every、some
+* 06 数组的去重
 
 ## 运行
 npm i