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