1.举例引入
举个栗子,电脑桌面有一个文件夹,文件夹里面有我需要的文件(如 xx.txt),但是又存在着许多的子文件夹,子文件夹里面又有子文件夹,而我需要的实体文件又散落在这些文件夹里面。此时,我需要精准有效地将所有的实体文件找出来,并备份,该怎么办?
假设:下方的红圈代表整个文件夹,蓝圈代表子文件夹,各个数字为实体文件。
实现:精准地获取文件也就是意味着,需要访问每一个子文件;有效地获取,也代表着不能胡乱寻找,得依次序,确保不遗漏。当我们按图中的方式开始依次找寻,每找到一个,就进行文件备份,到最后,就能解决这个问题。
转换思维:当我们用程序的思维来理解找文件的过程,又是什么样的呢?
2.积极思考
我们要找一个文件,是不是就相当于执行一个函数,我们提供参数,也就是文件夹,然后执行找文件的动作,得到返回值,也就是实体文件或其他。
// 找文件的方法
function 找文件(文件夹){
// 找文件的动作
return 文件 || 空 ;
}
如何执行这个动作,就需要我们,逐一的找,并辨别我需要的文件,然后提取文件且备份。这一系列的动作,在程序中就可以理解为:遍历,判断,定义容器(变量)并返回。大致意思如下
// 找文件的方法
function 找文件(文件夹){
let 备份 = 新建文件夹;
遍历参数文件夹{
if(实体文件){
备份.添加(遍历中的文件)