对象只有字符串检测

时间:2014-06-07 15:12:05

标签: javascript

我有这个问题,我无法弄清楚如何确定对象是否只有字符串。我不仅试图帮助解决这个问题,而且如果有人有时间,他们可以解释为什么他们的答案有效,以帮助我学习。谢谢

function hasOnlyStrings(o) {
 for (var val in o) {
   var values = o[match];
     if (typeof values === 'string') {
        return true;
     } 
     else { return false; }
 }
}

var car = {
 name: 'corvette',
 fast: true,
 color: 'black'
}

var truck = {
 name: 'ford',
 color: 'blue'
}

2 个答案:

答案 0 :(得分:3)

您只是测试第一个值,而不是全部值。

function hasOnlyStrings(o) {
    for (var val in o) {
        var values = o[match];
        if (typeof values != 'string') {
            return false;
        } 
    }
    return true;
}

答案 1 :(得分:2)

我认为你需要

function hasOnlyStrings(o) {
    for (var prop in o)
        if (typeof o[prop] !== 'string')
            return false;
    return true;
}

如果您想避免检查从原型继承的属性,请考虑使用o.hasOwnProperty(prop)