[NodeJs]如何用NodeJs查查誰沒交作業

[NodeJs]查查誰沒交作業?看看這裏就夠了

  • 網課大背景之下,很多作業都需要通過電子版交上,但有些時候,明明知道份數不對,卻還要一份份去核查到底是誰沒有交,十分繁瑣;爲什麼不能運用一下NodeJs,來做一個查閱的小工具呢?

  • 廢話不多說,進入正題

適用範圍

  • 電子版文件
  • 統一格式(姓名類的也要統一)
  • 將所有作業文件放在同一個文件夾之下
    在這裏插入圖片描述

目錄設置

  • 適用範圍
  • 正文
  • 試用
  • 代碼全覽

正文

  1. 因爲基於nodejs,所以需要安裝node運行環境。(如果您還沒有安裝,點擊這裏去Nodejs中文網
    在這裏插入圖片描述

  2. 首先,我們這次要用到fs模塊,先引入。

  3. 創建學生名字的數組,創建格式名的字符串變量。

  4. 聲明一個新數組,將原數組學生名字和格式名進行拼接。

  • (如果您前面有班級名,可以直接聲明一個字符串變量如 let classname = "軟工1801",然後將some方法裏的 item + type 更改爲 classname + item + type,其他特殊格式比如 - 空格 也同理)
const fs = require('fs');

const stu = ['張三','李四','王五'];

const type = '.txt';

let NewStu = [];

stu.some((item ,index) => {
    NewStu[index] = item + type;
});
  1. 使用fs文件系統的 readdir 異步方法,來讀取指定目錄下的文件名。(我的目錄如下)
    在這裏插入圖片描述

  2. 寫一個數組的比較方法,我的數組比較方法 ArrTest(),其原理就是檢測有沒有下標爲-1的元素,如果有的話,說明-1的元素是缺失的,那麼就返回;如果沒有就會返回一個空數組。

  3. 在 readdir 方法的回調函數中,調用ArrTest()方法,在此方法的回調方法裏,來判斷一下返回的結果,如果有則輸出文件名,如果沒有則輸出特定語句。

fs.readdir('./作業/',(err,data) => {
    if(err)throw err;
    
    ArrTest(NewStu, data, result => {
        if(result.length > 0){
            console.log('缺失內容:');
            console.log(result);
        }else{
            console.log('作業交齊啦!');
        }
    })
})

function ArrTest(stu,homework,callback){
    let back = stu.filter(x => homework.indexOf(x) == -1);
    callback(back);
}

試用

  • 現在是交齊的狀態,嘗試一下
    在這裏插入圖片描述

  • 現在是缺失的狀態,再次嘗試
    在這裏插入圖片描述

  • 大功告成了!

代碼全覽

const fs = require('fs');

const stu = ['張三','李四','王五'];

const type = '.txt';

let NewStu = [];

stu.some((item ,index) => {
    NewStu[index] = item + type;
});

fs.readdir('./作業/',(err,data) => {
    if(err)throw err;
    
    ArrTest(NewStu, data, result => {
        if(result.length > 0){
            console.log('缺失內容:');
            console.log(result);
        }else{
            console.log('作業交齊啦!');
        }
    })
})

function ArrTest(stu,homework,callback){
    let back = stu.filter(x => homework.indexOf(x) == -1);
    callback(back);
}

創作不易,歡迎點贊評論轉發

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章