JavaScript对象遍历与比较

JavaScript对象遍历与比较JS 写多了发现对于一些基本类型的相关处理还不够熟练 这里总结下 Js 里的基本类型和相关类型的一些常见操作 基本的流程控制语句也与其他语言类似 三种控制结构 顺序 判断 循环 javaScript 基本类型包含字符串 数字 布尔 数组 对象 Null Undefined 都是弱类型 变量声明为 var 也可以不用 var 声明 这样运行并不会出错 只是变量作用的值域不同而已 关于具体不同于闭包等相关内容属于高

  • JS写多了发现对于一些基本类型的相关处理还不够熟练,这里总结下Js里的基本类型和相关类型的一些常见操作。基本的流程控制语句也与其他语言类似,三种控制结构,顺序,判断,循环。javaScript基本类型包含 字符串、数字、布尔、数组、对象、Null、Undefined,都是弱类型,变量声明为var,也可以不用var声明,这样运行并不会出错,只是变量作用的值域不同而已,关于具体不同于闭包等相关内容属于高级特性有兴趣再补充这里暂不讨论。JS没有类似于Java里复杂的集合类,但是集合类也无非是一些基本的数据类型封装起来的,因此JavaScript在底层数据结构还是提供的比较完善,JS里的null与undefined感觉没太多的区别,可以来验证一下逻辑比较结果:
 console.log('比较null与undefined') console.log (null == undefined)
  1. 字符串类型常见的length为求长度,indexOf定位字符串中某一个指定的字符首次出现的位置,match()为匹配某个字符串,如果匹配返回该字符串,否则返回null,replace(oldString, newString)替换对应字符串.
  2. 数字类型可以为整数小数或则科学计数的方式。
  3. 对象有很多种,常用的为数组对象和普通对象,数组对象的初始化方式可以是var array = [],也可以是var array = new Array()。普通对象通过大括号定义var ob = {“name”,”micro”},也可以采用var ob = new Object(),动态的添加元素ob.name = “micro”。关于数组与对象的遍历:
 // 定义对象类型 var o1 = { 
  "id":1, "name":"testName"} var o2 = { 
  "id":1, "name":"testName"} // 遍历对象属性 console.log('遍历对象如下') for (var x in o1) { console.log('key : ' + x + ' value :' + o1[x]) } // 遍历数组 console.log('遍历数组如下') var array = ["test",2,4,5,7,"test2"] for (var x in array) { console.log(x) }
遍历对象如下 key : id value :1 key : name value :testName 遍历数组如下 0 1 2 3 4 5

当我们比较两个对象的时候:

 // 定义对象类型 var o1 = { 
  "id":1, "name":"testName"} var o2 = { 
  "id":1, "name":"testName"} // 直接判断对象返回false console.log(o1 == o2) var o3 = o2 // 指向引用指向的对象,返回true console.log(o3 == o2)

这里类似Java里的比较概念,如果我们需要返回的是比较两个对象的属性相等则返回两个对象是相等的那么我需要自己编写一个函数:

function isObjectEquals(o1,o2) { 
    try { var size1 = 0 var size2 = 0 for (var x in o1) { size1 ++ } for (var x in o2) { size2 ++ } // 对象属性长度一致 if (size1 != size2) { return false } // 遍历对象属性 for (var x in o1) { if (o1[x] != o2[x]) { return false } } return true } catch (err) { console.log(err.stack) return null } } // 调用 // 如果通过属性比较两个对象相等 var isEquals = isObjectEquals(o1,o2) console.log(isEquals)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178473.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:13
下一篇 2026年3月26日 下午5:13


相关推荐

  • 爬虫爬取妹子图片(入门篇)

    爬虫爬取妹子图片(入门篇)

    2021年11月11日
    53
  • 认识float的指数与尾数

    认识float的指数与尾数学过 C C 语言的我们 通常对于 float 的理解的话 float 占用 32 位 23 位尾数位 8 位指数位 1 位符号位

    2026年3月18日
    2
  • TGA文件分析

    TGA文件格式概述【OpenGL】游戏编程常用TGA图像格式详解以及加载纹理编程实现分析TGA格式图片使用FlexHEX打开text.tgatest是用像素笔画出的4*4的图像,第一行为白色和三基色,第四行为三补色和黑色,其余两行为白色打开后可以看到结果十分简单:第一个字节是0,表示没有图像的信息字段第二个字节是0,表示没有颜色表第三个字节总是2,表示此类型为格式2接下来五个字节全为0,可以忽略第九第十个字节为0,表示图像X坐标起始位置为0(最左)第十一、十二个字节为0,表示图

    2022年4月7日
    85
  • 教程-添加 Codelf 到 Mac 效率神器 Alfred 实现一键搜索「建议收藏」

    教程-添加 Codelf 到 Mac 效率神器 Alfred 实现一键搜索「建议收藏」Why?这里有SublimeText插件,Atom插件,CodelfChromeApp,WebStorm插件,自己用的编辑器没有Codelf插件也请参考WiKi。但如果你用Mac上的效率神器Alfred,在任何桌面任何窗口,1秒就能一键搜索Codelf。Result?效果就是你在Alfred的搜索栏:输入”E”按Enter回车选中Codelf.输…

    2022年5月20日
    81
  • 常用打包软件总结_打包工作总结

    常用打包软件总结_打包工作总结在一年多的VB、VC编写过程中,使用打包软件先总结下,以防以后

    2025年8月9日
    5
  • gzip和gunzip 解压参数「建议收藏」

    gzip和gunzip 解压参数「建议收藏」Linux压缩保留源文件的方法:gzip–cfilename>filename.gzLinux解压缩保留源文件的方法:gunzip–cfilename.gz>filenamegunzip的用法  1.作用gunzip命令作用是解压文件,使用权限是所有用户。2.格式gunzip[-acfhlLnNqrtvV][-s-Linux压缩保留源文件的方法: g…

    2025年8月27日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号