Javascript-检查对象中是否存在键

Javascript-检查对象中是否存在键,javascript,jquery,Javascript,Jquery,我正在用Javascript构建一个对象来解析uri内容并将它们的键/值对附加到它。然而,我被困在如何找出一个关键存在。代码如下: var uri = { segments : {}, parse : function() { var segments = {}; var parts; var s; parts = location.href.split('/'); parts = parts[3]

我正在用Javascript构建一个对象来解析uri内容并将它们的键/值对附加到它。然而,我被困在如何找出一个关键存在。代码如下:

var uri = {
    segments : {},
    parse : function() {
        var segments = {};
        var parts;
        var s;

        parts = location.href.split('/');
        parts = parts[3].split('?');
        parts = parts[1].split('&');

        for (var i = 0; i < parts.length; i++) {
            s = parts[i].split('=');
            segments[s[0]] = s[1];
        }

        uri.segments = segments;

        return segments;
    },
    segment : function(key) {
        if (uri.segments.length == 0)
        {
            uri.parse();
        }

        /* before was 'key in uri-segments' */      
        if (Object.prototype.hasOwnProperty.call(uri.segments, key))
        {
            return uri.segments[key];
        }
        else
        {
            return false
        }
    },
};
var uri={
段:{},
解析:函数(){
var段={};
var部件;
var s;
parts=location.href.split('/');
零件=零件[3]。拆分(“?”);
零件=零件[1]。拆分(“&”);
对于(变量i=0;i
编辑:完整代码

使用该方法检查密钥是否存在:

// hasOwnProperty from the objects prototype, to avoid conflicts
Object.prototype.hasOwnProperty.call(uri.segments, key);
//                                   ^ object      ^ key

中使用
有什么问题吗?@amnotiam例如,想象一个名为
toString
的键<{}
中的code>'toString'是真的。`@RobW:根据uri内容,我假设特定的键用于不同的部分。除非它可能将querystring参数分离成键。@yoda永远不会解析uri,因为
uri.segments.length==未定义的
(它不是数组)
undefined==0
为false。@谢谢,我没看到。将其更改为
segments:[]
并成功:)它表示密钥不存在,但如果我直接调用它,它将显示正确的结果。