我有一個嵌套物件,如
{
name: "John",
parent:{
parent:{
parent:{
}
}
}
}
現在我想獲取主父物件的級別或基本上父物件嵌套了多少次。在這種情況下,我應該得到3.
uj5u.com熱心網友回復:
您也可以像這樣遞回地執行此操作:
const obj = {
name: "John",
parent:{
parent:{
parent:{
parent:{
parent:{
parent:{
}
}
}
}
}
}
}
function findk(o,k,l=0){
if (o[k]) l=findk(o[k],k, l)
return l
}
console.log(findk(obj,"parent"))
uj5u.com熱心網友回復:
您可以通過簽入傳遞的值來采用遞回和迭代方法,如果它是一個陣列,則檢查所需的鍵并迭代陣列的所有值或回傳零。
const
getCount = (object, key) => object && typeof object === 'object'
? (key in object) Object
.values(object)
.reduce((s, o) => s getCount(o, key), 0)
: 0;
console.log(getCount({ name: "John", parent: { parent: { parent: {} } } }, 'parent'));
uj5u.com熱心網友回復:
你可以這樣做:
const obj = {
name: "John",
parent:{
parent:{
parent:{
parent:{
parent:{
parent:{
}
}
}
}
}
}
}
const keyToTrack = 'parent';
let current = obj[keyToTrack],
count = 0;
while (typeof current === 'object') {
current = current[keyToTrack];
count = 1;
}
console.log(`The key parent appears ${count} times`)
基本情況是當您找不到鑰匙時。
uj5u.com熱心網友回復:
let obj = { // treat it like a tree
name: "John",
parent: {
parent: {
parent: {}
}
}
}
const findDepth = (root, key) => {
let depth = 0;
let loop = (obj) => {
if (obj && obj[key]) {
loop(obj[key]);
depth ;
}
}
loop(root);
return depth;
}
const result = findDepth(obj, 'parent')
console.log(result);
uj5u.com熱心網友回復:
var test = {
name: "John",
parent: {
parent: {
parent: {}
}
}
}
function testObject(object, nestedObject) {
let i = 0;
while (true) {
if (object[nestedObject]) {
object = object[nestedObject];
i ;
} else {
return i;
}
}
}
console.log(testObject(test, 'parent'));
uj5u.com熱心網友回復:
您可以通過使用while這樣的方式來做到這一點:
let obj = {
name: "John",
parent: {
parent: {
parent: {
parent: {
parent: {
parent: {}
}
}
}
}
}
};
let key = 'parent', i = 0;
while(obj = obj[key]) i;
console.log(i)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/390873.html
標籤:javascript 节点.js 洛达什 下划线.js
下一篇:JavaScript匯入模塊混淆
