作为示例,我包含了一个只有一个元素的数组,它包含一个具有Children键的对象,该键是一个对象数组,每个对象也具有其自己的Children键,其中包含另一个数组。
这将运行在数万条数据上,因此性能至关重要。
我目前尝试的方法是使用实用程序方法将第二个数组的每个元素转换为键控对象的对象,例如:
[
{
"Id": "1",
"Children": [
{
"Id": "2",
"Children": [
{
"Id": "10",
"DisplayName": "3-4",
},
{
"Id": "1000",
"DisplayName": "5-6",
},
{
"Id": "100",
"DisplayName": "1-2",
},
]
}
]
}
]
我需要比较第二个对象数组和第一个对象数组,并确保第一个数组的顺序与第二个对象数组相同。如果不同,则进行排序,使其相同。
以下是第二个对象数组:
[
{
"Id": "1",
"Children": [
{
"Id": "2",
"Children": [
{
"Id": "100",
"DisplayName": "1-2",
},
{
"Id": "10",
"DisplayName": "3-4",
},
{
"Id": "1000",
"DisplayName": "5-6",
},
]
}
]
}
]
这将运行在数万条数据上,因此性能至关重要。
我目前尝试的方法是使用实用程序方法将第二个数组的每个元素转换为键控对象的对象,例如:
{
1: {
"Id": "1",
"Children": [
{
"Id": "2",
"Children": [
{
"Id": "4",
"DisplayName": "3-4",
},
{
"Id": "3",
"DisplayName": "1-2",
},
]
}
]
}
}
这样可以快速从顶层进行查找。我在想是否应该一直这样做,还是有一种惯用的方法可以实现这一点。我也考虑过递归。
已排序数组的顺序不是基于Id的 - 它是任意的。因此,需要保留顺序。