我在键/值对中有一个对象,其中可能包含布尔值。我需要评估值的类型,以便知道返回什么。假设我有一个看起来像的对象:
applyCommand(String command)
我想遍历每个键/值对,并根据值的类型做一些不同的事情。如果我使用{
aKey: false,
anotherKey: 4,
yetAnotherKey: true
}
,它将布尔值从true / false转换为0/1,所以我无法知道它们实际上是布尔值。
最好的方法是什么?
答案 0 :(得分:2)
我认为您只是“愚蠢”-您甚至没有检查map函数中options
对象的值。提供给Array#map
回调的第二个参数始终是索引。
扩展代码以检查options
中值的类型:
Object.keys(options).map((key, i, all_keys) => {
let val = options[key];
console.log(typeof val)
...
});
考虑查看JavaScript中不同的迭代/枚举方法,例如 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration
答案 1 :(得分:1)
您的.map(key, index)
遍历数组["aKey", "anotherKey", "yetAnotherKey"]
,并丢失了options
中的值。也许这样的事情对您有用:
for( o in options ){
console.log(o, options[o])
}
> aKey false
> anotherKey 4
> yetAnotherKey true