[NodeJs]查查誰沒交作業?看看這裏就夠了
-
網課大背景之下,很多作業都需要通過電子版交上,但有些時候,明明知道份數不對,卻還要一份份去核查到底是誰沒有交,十分繁瑣;爲什麼不能運用一下NodeJs,來做一個查閱的小工具呢?
-
廢話不多說,進入正題
適用範圍
- 電子版文件
- 統一格式(姓名類的也要統一)
- 將所有作業文件放在同一個文件夾之下
目錄設置
- 適用範圍
- 正文
- 試用
- 代碼全覽
正文
-
因爲基於
nodejs
,所以需要安裝node運行環境。(如果您還沒有安裝,點擊這裏去Nodejs中文網)
-
首先,我們這次要用到fs模塊,先引入。
-
創建學生名字的數組,創建格式名的字符串變量。
-
聲明一個新數組,將原數組學生名字和格式名進行拼接。
- (如果您前面有班級名,可以直接聲明一個字符串變量如
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;
});
-
使用fs文件系統的
readdir
異步方法,來讀取指定目錄下的文件名。(我的目錄如下)
-
寫一個數組的比較方法,我的數組比較方法
ArrTest()
,其原理就是檢測有沒有下標爲-1的元素,如果有的話,說明-1的元素是缺失的,那麼就返回;如果沒有就會返回一個空數組。 -
在 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);
}