遍历包含布尔值的对象

时间:2018-08-20 23:04:48

标签: javascript typescript javascript-objects

我在键/值对中有一个对象,其中可能包含布尔值。我需要评估值的类型,以便知道返回什么。假设我有一个看起来像的对象:

applyCommand(String command)

我想遍历每个键/值对,并根据值的类型做一些不同的事情。如果我使用{ aKey: false, anotherKey: 4, yetAnotherKey: true } ,它将布尔值从true / false转换为0/1,所以我无法知道它们实际上是布尔值。

最好的方法是什么?

2 个答案:

答案 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

How to iterate over a JavaScript object?

答案 1 :(得分:1)

您的.map(key, index)遍历数组["aKey", "anotherKey", "yetAnotherKey"],并丢失了options中的值。也许这样的事情对您有用:

for( o in options ){
    console.log(o, options[o])
}

> aKey false
> anotherKey 4
> yetAnotherKey true