• 从fis中得来的数据结构,Object版,


    /*
     * config
     * caoke
     */
    
    'use strict';
    //You can't use merge in util.js
    function merge(source, target){
        if(typeof source === 'object' && typeof target === 'object'){
            for(var key in target){
                if(target.hasOwnProperty(key)){
                    source[key] = merge(source[key], target[key]);
                }
            }
        } else {
            source = target;
        }
        return source;
    }
    
    Object.prototype.hget = function(path, def){
        var result = this || {};
        (path || '').split('.').forEach(function(key){
            if(key && (typeof result !== 'undefined')){
                result = result[key];
            }
        });
        if(typeof result === 'undefined'){
            return def;
        } else {
            return result;
        }
    }
    Object.prototype.hset = function(path, value){
        if(typeof value === 'undefined'){
            for(var k in path){
                this[k]=path[k];
            }
        } else {
            path = String(path || '').trim();
            if(path){
                var paths = path.split('.'),
                    last = paths.pop(),
                    data = this || {};
                paths.forEach(function(key){
                    var type = typeof data[key];
                    if(type === 'object'){
                        data = data[key];
                    } else if(type === 'undefined'){
                        data = data[key] = {};
                    } else {
                        console.error('forbidden to set property[' + key + '] of [' + type + '] data');
                    }
                });
                data[last] = value;
            }
        }
        return this;
    }
    Object.prototype.hdel = function(path){
        path = String(path || '').trim();
        if(path){
            var paths = path.split('.'),
                data = this,
                last = paths.pop(), key;
            for(var i = 0, len = paths.length; i < len; i++){
                key = paths[i];
                if(typeof data[key] === 'object'){
                    data = data[key];
                } else {
                    return this;
                }
            }
            if(typeof data[last] !== 'undefined'){
                delete data[last];
            }
        }
        return this;
    }
    Object.prototype.hmerge = function(){
        var self = this;
        [].slice.call(arguments).forEach(function(arg){
            if(typeof arg === 'object'){
                merge(self, arg);
            } else {
                console.warning('unable to merge data[' + arg + '].');
            }
        });
        return this;
    }
    
    
    var sp={}
    sp.hset("user.name","caoke")
    sp.hset("user.qq","914890674")
    console.log(sp)
  • 相关阅读:
    git 使用
    使用Xcode 7 beta免费真机调试iOS应用程序
    Java类更改常量后编译不生效
    Spring AOP中pointcut expression表达式解析
    awk
    sed
    Servlet 单例多线程
    iOS 运行时添加属性和方法
    Lucene5学习之使用MMSeg4j分词器
    redis
  • 原文地址:https://www.cnblogs.com/caoke/p/6269523.html
Copyright © 2020-2023  润新知