作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 React Native 应用程序中有一个导航功能,它将在开发人员模式下传递给它的所有参数输出到控制台,有时我向参数发送了一个大存储,但它无法输出。获取有关循环对象引用的错误,因为该对象非常深。因此,我决定创建一个函数来检查对象的所有字段,并依赖它将信息输出到控制台,例如,如果对象字段的深度超过 1 层。
const notDeepObj = {
name: 'John',
surname: 'Robert',
age: 28,
family: false,
};
const deepObj = {
name: 'John',
surname: 'Robert',
bankAccount: {
accounts: 2,
cash: true,
credit false,
wasCreated: {
city: 'New-York',
date: '12.02.2020.',
}
}
}
function checkDepthOfObject(obj){}
如果对象不深,它必须返回对象本身,如下所示:
checkDepthOfObject(notDeepObj)
//it will return:
{
name: 'John',
surname: 'Robert',
age: 28,
family: false,
};
对于深度对象,它必须返回所有非深度字段并加上对象的深度字段的标志:
checkDepthOfObject(notDeepObj)
//it will return:
{
name: 'John',
surname: 'Robert',
bankAccount: '[DEEP_OBJECT]'
};
您能推荐我最好的方法吗?
最佳答案
使用Object.entries
和map
并检查typeof
值。
const notDeepObj = {
name: "John",
surname: "Robert",
age: 28,
family: false
};
const deepObj = {
name: "John",
surname: "Robert",
bankAccount: {
accounts: 2,
cash: true,
credit: false,
wasCreated: {
city: "New-York",
date: "12.02.2020."
}
}
};
function checkDepthOfObject(obj) {
return Object.fromEntries(
Object.entries(obj).map(([key, value]) => [
key,
typeof value === "object" ? "[DEEP_OBJECT]" : value
])
);
}
console.log(checkDepthOfObject(notDeepObj));
console.log(checkDepthOfObject(deepObj));
关于javascript - 如何在 Javascript 中检查每个对象字段的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916533/
我是一名优秀的程序员,十分优秀!