动态过滤嵌套javascript对象数组中的数据[重复]

Posted

技术标签:

【中文标题】动态过滤嵌套javascript对象数组中的数据[重复]【英文标题】:Dynamically filter data in nested javascript object array [duplicate] 【发布时间】:2020-05-22 11:51:05 【问题描述】:

我有一个动态数组var arr = ["key1","key2","key3"] 我想用这个数组过滤一个对象数组,例如,

var obj = ["key1":"key2":"key3":5,"key1":"key2":"key3":7,"key1":"key2":"key3":8] 

“key3”等于 5。如何使用 vanilla javascript 实现这一点?

【问题讨论】:

我要检查的是 obj.filter(e => e["key1"]["key2"]...etc = some_value);但数组中的元素可以变化 发布至少两个输入和预期输出示例 【参考方案1】:

您可以使用对象减少键并返回值进行检查。

var getValue = (keys, object) => keys.reduce((o, k) => o[k], object),
    keys = ["key1", "key2", "key3"],
    array = [ key1:  key2:  key3: 5   ,  key1:  key2:  key3: 7   ,  key1:  key2:  key3: 8   ],
    result = array.filter(o => getValue(keys, o) === 5);

console.log(result);
.as-console-wrapper  max-height: 100% !important; top: 0; 

【讨论】:

以上是关于动态过滤嵌套javascript对象数组中的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中过滤数组内的嵌套对象

如何将带有对象的数组中的数据动态添加到嵌套数组中?

JQ 过滤嵌套对象中的字段

数据过滤 Javascript(嵌套字典和数组)

如何过滤 JavaScript 中的嵌套对象属性?

从 JavaScript 中的对象数组创建嵌套对象 [关闭]