使用for ... in和instanceof解析对象

QRXQ

我试图遍历一个对象,并根据其类型在每个不同的子对象上使用不同的功能。instanceof似乎是识别非内置类型的唯一方法,因此我尝试将其与for ... in一起使用但是,我没有得到预期的输出。

这是一个示例小提琴来说明我的问题:http : //jsfiddle.net/zv230dvL/2/

function testObject(){}
function testContainer(objects){
  this.zero = objects[0];
  this.one = objects[1];
  this.two = objects[2];
}
var singleObject = new testObject();
var container = new testContainer(
  [new testObject(),
   new testObject(),
   new testObject()]
);
...
//Testing if a single object functions as expected
out(singleObject instanceof testObject);
//Testing if directly referencing an object
//in a container functions as expected
out(container.zero instanceof testObject);
//iterating through a container object...
for(i in container){
 out(i instanceof testObject);   
}

输出是

true
true
false
false
false

首先,做这样的事情的合适方法是什么?

其次,为什么for ... in循环中的变量以这种方式运行?

请不要jQuery。

四人

当您使用迭代Object时for..in,循环变量将具有字符串类型的键所以,你应该像这样检查

for (i in container) {
    out(container[i] instanceof testObject);
}

现在,您使用的对应键的对象icontainer进行此更改后,所有项目的计算结果均为true

注意: for..in应该也提供所有继承的属性。因此,for..in与对象一起使用时,正常的循环模式

for (i in container) {
    if (container.hasOwnProperty(i)) {
        out(container[i] instanceof testObject);
    }
}

这样可以确保仅检查直接在对象中定义的属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用for ... in和instanceof解析对象

来自分类Dev

面向对象的设计-何时使用getClass和instanceof

来自分类Dev

使用“ instanceof”和assertEquals的assertTrue

来自分类Dev

如何使用Retrofit和GSON解析[]包围的JSON对象列表?

来自分类Dev

使用未知键和未知值解析对象内部的数组

来自分类Dev

使用Moshi和Retrofit解析动态字符串的对象

来自分类Dev

如何使用 '\n' 和 \\\ 解析字符串对象

来自分类Dev

使用 instanceof 检查和修改输入

来自分类Dev

如何使InstanceOf与本地存储中的对象一起使用

来自分类Dev

使用xstream解析数组对象

来自分类Dev

使用argparse解析对象列表

来自分类Dev

使用解析更新多个对象?

来自分类Dev

使用Blob解析数组对象

来自分类Dev

使用JSON对象解析JSON

来自分类Dev

使用ngCsv和AngularJS将moment()对象解析为文件名

来自分类Dev

使用熊猫将日期,时间和纳秒解析为日期时间对象

来自分类Dev

如何使用AWS C ++ SDK解析区域,存储桶和对象键的S3 URI?

来自分类Dev

如何使用Prisma和GraphQL创建对象类型的自解析数组

来自分类Dev

使用熊猫将日期,时间和纳秒解析为日期时间对象

来自分类Dev

使用ngCsv和AngularJS将moment()对象解析为文件名

来自分类Dev

Javascript:使用自定义键名和值将字符串数组解析为对象

来自分类Dev

混淆使用instanceof和其他继承的数据

来自分类Dev

使用instanceof和检查构造函数有什么区别?

来自分类Dev

使用解析和AWS Cognito

来自分类Dev

使用 lxml 和 xpath 解析

来自分类Dev

如何将CURL和PHP简单HTML DOM解析器与对象一起使用

来自分类Dev

如何将CURL和PHP简单HTML DOM解析器与对象一起使用

来自分类Dev

使用TypeScript解析复杂的json对象

来自分类Dev

无法使用空数组/对象解析JSON

Related 相关文章

  1. 1

    使用for ... in和instanceof解析对象

  2. 2

    面向对象的设计-何时使用getClass和instanceof

  3. 3

    使用“ instanceof”和assertEquals的assertTrue

  4. 4

    如何使用Retrofit和GSON解析[]包围的JSON对象列表?

  5. 5

    使用未知键和未知值解析对象内部的数组

  6. 6

    使用Moshi和Retrofit解析动态字符串的对象

  7. 7

    如何使用 '\n' 和 \\\ 解析字符串对象

  8. 8

    使用 instanceof 检查和修改输入

  9. 9

    如何使InstanceOf与本地存储中的对象一起使用

  10. 10

    使用xstream解析数组对象

  11. 11

    使用argparse解析对象列表

  12. 12

    使用解析更新多个对象?

  13. 13

    使用Blob解析数组对象

  14. 14

    使用JSON对象解析JSON

  15. 15

    使用ngCsv和AngularJS将moment()对象解析为文件名

  16. 16

    使用熊猫将日期,时间和纳秒解析为日期时间对象

  17. 17

    如何使用AWS C ++ SDK解析区域,存储桶和对象键的S3 URI?

  18. 18

    如何使用Prisma和GraphQL创建对象类型的自解析数组

  19. 19

    使用熊猫将日期,时间和纳秒解析为日期时间对象

  20. 20

    使用ngCsv和AngularJS将moment()对象解析为文件名

  21. 21

    Javascript:使用自定义键名和值将字符串数组解析为对象

  22. 22

    混淆使用instanceof和其他继承的数据

  23. 23

    使用instanceof和检查构造函数有什么区别?

  24. 24

    使用解析和AWS Cognito

  25. 25

    使用 lxml 和 xpath 解析

  26. 26

    如何将CURL和PHP简单HTML DOM解析器与对象一起使用

  27. 27

    如何将CURL和PHP简单HTML DOM解析器与对象一起使用

  28. 28

    使用TypeScript解析复杂的json对象

  29. 29

    无法使用空数组/对象解析JSON

热门标签

归档