zoukankan      html  css  js  c++  java
  • 几个常用的Node方法

    1.写入文件

    /**
     * 写入文件
     * @param  {string} filePath 文件路径
     * @param  {string} data     文件内容
     * @return {none}          
     */
    function writeFile(filePath,data){
        var dir = path.dirname(filePath);
        var parts = dir.split(path.sep);
        parts.reduce(function (previous, current) {
                var preDir = path.join(previous,current);
                if (!fs.existsSync(preDir)) {
                    fs.mkdirSync(preDir)
                }
                return preDir
        });
    
        fs.writeFileSync(filePath,data);
    }

    2.文件夹复制

    /**
     * 复制文件夹及其内文件
     * @param  {string} src  源文件路径
     * @param  {string} dest 放置路径
     * @return {bool}   
     */
    function copy(src, dest) {
    
        if (isDirectory(src)) {
            if (!fs.existsSync(dest)) {
                fs.mkdirSync(dest);
            }
            var files = fs.readdirSync(src);
            if (files) {
                files.forEach(function(filename) {
                    copy(path.join(src, filename), path.join(dest, filename))
                })
            }
        } else {
            fs.writeFileSync(dest, readFile(src));
        }
        return true;
    }

    3.数组去重

    /**
     * 数组去重
     * @param  {array} arr 
     * @return {array} 
     */
    function arrayUnique(arr) {
        var result = [];
        for (var i = 0; i < arr.length; i++) {
            if (result.indexOf(arr[i]) == -1) {
                result.push(arr[i]);
            }
        }
        return result;
    }

    4.深度克隆对象

    /**
     * 克隆对象
     * @param  {object} obj 
     * @return {object}  
     */
    function clone(obj) {
        // 简单数据类型直接返回
        if (obj == null) {
            return obj;
        }
        if (typeof obj != 'object') {
            return obj;
        }
        // 复制复杂对象
        var result = new obj.constructor();
        for (var prop in obj) {
            result[prop] = clone(obj[prop]);
        }
        return result;
    };
  • 相关阅读:
    Git学习的网址
    (转)读懂diff
    如何让Beamer的logo放在右上角
    测试面试的一些分享
    python学习-使用制表符或者换行符来添加空白
    python学习-python变量的命名和使用
    python学习-运行.py时,python做了啥
    2020年,很特殊的1年
    python md5验签
    postman使用当前时间戳
  • 原文地址:https://www.cnblogs.com/syfwhu/p/5696984.html
Copyright © 2011-2022 走看看