zoukankan      html  css  js  c++  java
  • 从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)
  • 相关阅读:
    JDBC面试问题
    Linux下如何实现MySQL数据库每天自动备份定时备份
    Linux下如何实现MySQL数据库每天自动备份定时备份
    Linux下如何实现MySQL数据库每天自动备份定时备份
    Random Forest And Extra Trees
    经济学十大原理
    JavaScript的执行机制
    单元测试
    JavaScript是如何工作的(一)
    阿里大数据竞赛season1 总结
  • 原文地址:https://www.cnblogs.com/caoke/p/6269523.html
Copyright © 2011-2022 走看看