`
SeniorMagician
  • 浏览: 4883 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

js深度遍历对象

阅读更多
/**
* 拼接每行前缀
* i 层次
* return前缀
*/
function getLeftStr(i){
	var s="";
	for(var j=0;j<i;j++){
		s=s+" |--";
	}
	return s;
}
/**
* 遍历对象
* obj 对象
* return 遍历结果文本
*/
function allPrpos(obj,i){ 
    var props = "";
    if(typeof(i)=="undefined") {
    	i=1;
    }
    var s=getLeftStr(i);
    for(var p in obj){
        if(typeof(obj[p])=="object"){ 
           props = props+s+ p + "\r" + allPrpos(obj[p],++i);
           --i;
        }else if(typeof(obj[p])=="function"){
          //obj[p]();
        }else{
            props=props+s+p + "=" + obj[p] + "\r";
        }
    }
    return props;
}

还有一个缺点是对于图来说没有判断环
分享到:
评论

相关推荐

    JS递归遍历对象获得Value值方法技巧

    总结来说,JavaScript中的递归遍历对象是一种常用的技术,用于访问和操作复杂数据结构。在实际应用中,需要根据具体需求选择合适的遍历策略,并注意处理潜在的性能和内存问题。通过熟练掌握递归,可以更高效地处理...

    JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解

    - 当遍历对象时,注意属性的顺序可能不固定,因为JavaScript对象的属性顺序是不确定的。 - 如果数组或对象包含函数,`typeof`检查可能会返回`"function"`,需要根据实际情况处理。 - 在递归遍历时,需要考虑循环...

    Javascript 遍历对象中的子对象

    在这种情况下,我们需要使用递归函数或者栈、队列等数据结构来实现深度遍历。这些高级的遍历技巧在处理复杂数据结构时非常有用。 通过这些遍历方法的应用,我们可以灵活地访问和操作嵌套对象的任何部分,无论是基本...

    js代码-深度/广度优先遍历实现对象的深度拷贝

    在JavaScript中,深度拷贝是一种创建新对象的方法,该新对象与原始对象具有相同属性和值,但不共享引用。这在处理复杂的数据结构时尤其重要,因为浅拷贝只会复制对象的引用,而深度拷贝会递归地复制整个对象层次。本...

    使用递归遍历对象获得value值的实现方法

    在JavaScript编程中,遍历对象并获取其所有嵌套属性的值是一项常见的任务。当对象包含其他对象或数组时,递归遍历成为一种有效的方法。递归是一种函数调用自身的技术,允许处理层次结构的数据结构。在这个场景下,...

    Javascript如何递归遍历本地文件夹

    此外,递归遍历文件系统可能消耗大量资源,尤其是在处理大型文件夹结构时,因此在实际应用中需要考虑性能优化,比如设置递归深度限制或者使用非阻塞异步处理。 总结起来,JavaScript在IE环境下可以通过...

    JavaScript基于遍历操作实现对象深拷贝功能示例

    它遍历源对象(`source`)的每一个属性,如果属性值是数组或对象,递归调用 `extend` 函数进行深度复制;否则,直接将属性值复制给目标对象(`destination`)。 ```javascript function extend(destination, source...

    js 树形结构数据遍历条件判断删除对应数据.pdf

    值得注意的是,这种方法会创建一个新的数据结构,原数据不会被修改,这是因为在JavaScript中,数组和对象都是引用类型,原始数据的引用没有改变。如果希望在原数据上直接进行操作,可以使用 `map` 或者直接修改 `...

    xssObject:遍历对象以查找xss转义的字符串

    1. **深度遍历**:`xssObject`会递归地访问对象的所有属性,包括嵌套的对象和数组。 2. **字符串检查**:对每个属性值进行字符串检查,查找XSS相关的模式。 3. **异常处理**:对于非字符串类型的属性值,如函数或...

    js代码-(2)遍历对象自身属性:Object.getOwnPropertyName()

    以下是一个使用`Object.getOwnPropertyNames()`遍历对象属性并打印的示例: ```javascript function printOwnProperties(obj) { let propertyNames = Object.getOwnPropertyNames(obj); for (let name of ...

    js代码-遍历输出深度

    总的来说,`js代码-遍历输出深度`这个主题涵盖了JavaScript中处理复杂数据结构的基本技巧,包括遍历数组、对象,以及使用递归进行深度遍历的方法。这对于开发涉及大量数据操作的应用,如前端框架、API接口处理等都至...

    JS动态遍历json中所有键值对的方法(不知道属性名的情况)

    这段代码中,`for...in`循环用于遍历对象的所有可枚举属性。`prop`变量将依次获取到`jsonObj`对象中的每个键名,然后我们可以通过`jsonObj[prop]`来获取对应的值。 在实际开发中,我们可能还需要处理嵌套的JSON对象...

    JavaScript实现树的遍历算法示例【广度优先与深度优先】

    本篇将介绍如何使用JavaScript实现树的遍历,包括深度优先遍历(DFS)和广度优先遍历(BFS)。 深度优先遍历(DFS) 深度优先遍历是一种用于遍历或搜索树或图的算法。在深度优先搜索中,我们从根节点开始,首先尽...

    .遍历DOM元素

    1. 避免使用`for...in`遍历DOM,因为它会遍历对象的所有可枚举属性,包括原型链上的属性。 2. 使用`NodeList`对象时,注意其非活集合特性,即在遍历过程中,如果DOM结构发生改变,遍历结果可能不准确。 3. 优化遍历...

    object-scan:使用匹配和回调遍历对象层次结构

    使用匹配和回调遍历对象层次结构。 安装 使用安装: $ npm install --save object-scan 用法 const objectScan = require ( 'object-scan' ) ; const haystack = { a : { b : { c : 'd' } , e : { f : 'g' } } }...

    js对象层次• navigator •screen•window

    `screen`对象提供了关于用户显示器的详细信息,包括屏幕的宽度和高度(`width`和`height`)、可用宽度和高度(`availWidth`和`availHeight`),以及颜色深度(`colorDepth`),这在设计响应式网页或需要适应不同屏幕...

    javascript对象比较

    - **深层比较**:对于更复杂的比较,如深比较,可以自定义函数遍历对象的所有属性,或者使用第三方库如lodash的`_.isEqual()`方法。 3. **`equals.js`可能实现的对象比较函数** - `equals.js`很可能包含一个...

    唯快不破——高效定位线上Node.js应用内存泄漏.pdf

    Copy Roots算法是一种深度优先搜索算法,用于深度遍历对象图以确保只复制存活的对象。BFS算法则是广度优先搜索算法,用于遍历对象图。Mark-Sweep和Mark-Compact算法是老生代垃圾回收中使用的,它们可以标记和清除...

Global site tag (gtag.js) - Google Analytics