Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javaScript的标准函数中json中的条件?_Javascript - Fatal编程技术网

使用javaScript的标准函数中json中的条件?

使用javaScript的标准函数中json中的条件?,javascript,Javascript,我有以下功能 compare: function (filterObj, sourceObj, fullMatch) { if (!filterObj) { return true; } var filterKeys = Object.keys(filterObj); var match = fullMatch; for (var i = 0,

我有以下功能

compare: function (filterObj, sourceObj, fullMatch) {
            if (!filterObj) {
                return true;
            }
            var filterKeys = Object.keys(filterObj);
            var match = fullMatch;
            for (var i = 0, len = filterKeys.length; i < len; i++) {
                var key = filterKeys[i];
                var value = filterObj[key];
                var isKeyInsourceObj = sourceObj.hasOwnProperty(key);
                var isEqual = value === "*" || value === sourceObj[key];
                var issourceObjPropArr = Array.isArray(sourceObj[key]);
                var isValueArr = value === "*" || Array.isArray(value);

                if (!fullMatch && isKeyInsourceObj) {
                    if (isEqual) {
                        return true;
                    }
                    if (issourceObjPropArr && sourceObj[key].indexOf(value) !== -1) {
                        return true;
                    }
                } else
                    if (fullMatch && isKeyInsourceObj) {
                        var inArr = issourceObjPropArr && (sourceObj[key].indexOf(value) !== -1 || (isValueArr && App.Utils.findOne(sourceObj[key], value)));
                        if (!isEqual && !inArr) {
                            match = false;
                        }
                    }
                    else {
                        match = false;
                    }
            }
            return match;
        },
此功能应定义为通用/标准功能,可在任何地方使用。解决方案:

compare: function (filterObj, sourceObj, fullMatch) {
            if (!filterObj) {
                return true;
            }
            var filterKeys = Object.keys(filterObj);
            var match = fullMatch;
            for (var i = 0, len = filterKeys.length; i < len; i++) {
                var key = filterKeys[i];
                var value = filterObj[key];
                var isKeyInsourceObj = sourceObj.hasOwnProperty(key);
                var isNotUnknown;
                var isEmpty = App.Utils.isEmpty(sourceObj[key]);
                if (!isEmpty) {
                    isNotUnknown = value === "!null";
                }
                var isEqual = value === "*" || value === sourceObj[key] || isNotUnknown;
                var issourceObjPropArr = Array.isArray(sourceObj[key]);
                var isValueArr = value === "*" || Array.isArray(value);

                if (!fullMatch && isKeyInsourceObj) {
                    if (isEqual && isNotUnknown) {
                        return true;
                    }
                    if (issourceObjPropArr && sourceObj[key].indexOf(value) !== -1) {
                        return true;
                    }
                }
                else if (fullMatch && isKeyInsourceObj) {
                        var inArr = issourceObjPropArr && (sourceObj[key].indexOf(value) !== -1 || (isValueArr && App.Utils.findOne(sourceObj[key], value)));
                     if (!isEqual && !inArr && !isNotUnknown) {
                            match = false;
                     }
                }
                else {
                     match = false;
                }
            }
            return match;
        },
    //check value is not undefined or null or 'unknown'
    isEmpty: function (val) {
        return (val === undefined || val == null || val === "unknown") ? true : false;
    },
比较:函数(filterObj、sourceObj、fullMatch){ 如果(!filterObj){ 返回true; } var filterKeys=Object.keys(filterObj); var匹配=完全匹配; 对于(变量i=0,len=filterKeys.length;i
compare: function (filterObj, sourceObj, fullMatch) {
            if (!filterObj) {
                return true;
            }
            var filterKeys = Object.keys(filterObj);
            var match = fullMatch;
            for (var i = 0, len = filterKeys.length; i < len; i++) {
                var key = filterKeys[i];
                var value = filterObj[key];
                var isKeyInsourceObj = sourceObj.hasOwnProperty(key);
                var isNotUnknown;
                var isEmpty = App.Utils.isEmpty(sourceObj[key]);
                if (!isEmpty) {
                    isNotUnknown = value === "!null";
                }
                var isEqual = value === "*" || value === sourceObj[key] || isNotUnknown;
                var issourceObjPropArr = Array.isArray(sourceObj[key]);
                var isValueArr = value === "*" || Array.isArray(value);

                if (!fullMatch && isKeyInsourceObj) {
                    if (isEqual && isNotUnknown) {
                        return true;
                    }
                    if (issourceObjPropArr && sourceObj[key].indexOf(value) !== -1) {
                        return true;
                    }
                }
                else if (fullMatch && isKeyInsourceObj) {
                        var inArr = issourceObjPropArr && (sourceObj[key].indexOf(value) !== -1 || (isValueArr && App.Utils.findOne(sourceObj[key], value)));
                     if (!isEqual && !inArr && !isNotUnknown) {
                            match = false;
                     }
                }
                else {
                     match = false;
                }
            }
            return match;
        },
    //check value is not undefined or null or 'unknown'
    isEmpty: function (val) {
        return (val === undefined || val == null || val === "unknown") ? true : false;
    },