gpt4 book ai didi

javascript - 嵌套 json 对象中数组过滤器的使用

转载 作者:行者123 更新时间:2023-12-01 00:54:46 24 4
gpt4 key购买 nike

我的目标是引用嵌套 json 结构内的特定 View (A、B 或 C)。

this.selected_table = this.all_tables.views.find(x => x)['A'];

这是使用过滤器的正确方法吗,因为我发现的所有示例在 array.find() 中都有一些条件。就我而言,它可以在没有条件的情况下工作,但我感觉 array.find() 在我的情况下是不必要的?但是,我找不到其他方法。

JSON 对象

all_tables = {  
"views":[
{
"A":[
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
],
"B":[
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
],
"C":[
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
]
}
]
}

最佳答案

通常Array.prototype.find用于根据内部函数是否返回 true 来查找数组中的特定元素。在您的示例中,您返回的是 x,它是 views 数组中的对象,因此其计算结果为 true。因此,您的 .find 只是返回 views 数组中的一个对象(或更具体地说,views 数组中的第一个对象)。既然是这种情况,就不需要 .find() ,而是可以使用其索引在 views 中引用该对象:

this.selected_table = this.all_tables.views[0]['A']

参见下面的示例:

all_tables = {  
"views":[
{
"A":[
{
"id":"a",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"a2",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
],
"B":[
{
"id":"b",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"b2",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
],
"C":[
{
"id":"c",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
},
{
"id":"c2",
"username":"",
"status":"",
"location":"",
"positionen":[
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
},
{
"field1":"",
"field2":"",
"field3":""
}
]
}
]
}
]
};

console.log(all_tables.views[0]['A']);
console.log(all_tables.views[0]['C']);

关于javascript - 嵌套 json 对象中数组过滤器的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56678099/

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