gpt4 book ai didi

node.js - 我想要一个自定义检查函数,用于在 node.js 中与 util.inspect 一起使用,以专门处理数组

转载 作者:搜寻专家 更新时间:2023-11-01 00:06:48 25 4
gpt4 key购买 nike

给定 var a = {a:'a', b:'b', c:[1,2,3], d:{ d1:{ d2:{ d3:[1,2,3 ] }}}}; 我想从 console.log( util.inspect( a, {depth:null}));

获得以下输出
{ a: 'a',
b: 'b',
c: Array[3],
d: { d1: { d2: { d3: Array[3] } } } }

我尝试了以下但我得到的只是undefined

a.inspect = function(depth){
var self = this;
Object.keys(self).forEach( function(key){
if(Array.isArray(self[key])){
return key+': Array['+self[key].length+']';
}else{
return util.inspect(self[key]);
}
});
};

documentation at node.js不是很有帮助,我在 Google 上找到的所有页面都只是模仿 node.js 文本。

最佳答案

问题是您的 return 语句引用了用于迭代这些项目的内联函数,因此 inspect 函数根本不返回任何内容。

要解决此问题,您可以使用(阻塞)for 循环遍历条目并从那里返回。

除此之外,您应该累积每个键的子结果,并且只在最后返回。

比如(未测试):

a.inspect = function(depth) {
var result = '{';
for (var key in this) {
if (Array.isArray(this[key]))
result += key + ': Array[' + this[key].length + ']';
else
result += util.inspect(this[key]);
}
result += '}';
return result;
};

请注意,您不需要对 this 进行任何替换,因为您始终处于同一个闭包中。

关于node.js - 我想要一个自定义检查函数,用于在 node.js 中与 util.inspect 一起使用,以专门处理数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com