如果你需要一个更简单的方法来查找多层嵌套数组对象中的特定字段值,你可以使用现代 JavaScript 中的一些高阶函数(Higher-Order Functions)如 Array.prototype.flatMap() 和 Array.prototype.find()。
以下是使用高阶函数的示例代码:
const data = [
{
name: 'Alice',
age: 25,
hobbies: ['reading', 'painting'],
address: {
street: '123 Main St',
city: 'Example City'
}
},
{
name: 'Bob',
age: 30,
hobbies: ['gaming', 'cooking'],
address: {
street: '456 Elm St',
city: 'Sample Town'
}
}
];
const fieldName = 'street';
const fieldValue =
data.flatMap(obj => Object.values(obj)).flat().find(value => value === fieldName);
console.log(fieldValue); // 输出: 123 Main St
在上述代码中,我们首先使用 flatMap() 将每个对象的值提取为一个数组,并且通过 Object.values(obj) 获取到对象内所有的值。然后,我们使用 flat() 方法将多维数组扁平化为一维数组。最后,我们使用 find() 方法从一维数组中找到第一个与目标字段值相匹配的元素。
在示例中,我们使用字段名 'street' 进行查找,最终返回了 '123 Main St'。
请注意,这种方法适用于较小的数据集和浅层嵌套结构。如果数据集非常大或层级很深,性能可能会受到一定影响。对于更复杂的情况,可能需要使用递归或其他更高级的算法来处理。
2025

被折叠的 条评论
为什么被折叠?



