首页 > 解决方案 > 如何使用另一个 json 数组过滤 json 数组?

问题描述

我有一个包含大量记录的 json 数组的响应,但我想通过使用另一个 json 数组来过滤该 json 数组。

我的 json 回复

http://prntscr.com/lvxwob

我的过滤器json数组就像

"filterParams" : [ 
        {
            "param" : "actualSum",
            "value" : "95",
            "type" : "text",
            "comparision" : "isEqual"
        }, 
        {
            "param" : "wbsSort",
            "value" : "6",
            "type" : "text",
            "comparision" : "isEqual"
        }
    ],

那么我如何使用 javascript 或 node js 过滤我的响应。我想获得过滤后的数据,如匹配参数与响应参数及其值。

例如,如果actualSum 的匹配值为95 并且wbsSort 的值等于6,那么它将返回true,否则返回false。

标签: javascriptnode.jsjson

解决方案


您可以过滤结果数组中项目,其中项目与filterParams. 如果您只想检查是否存在至少一个匹配项,请替换.filter.some

例如

var matches = results.filter(item =>
  filterParams.every(paramItem =>
    item[paramItem.param] === paramItem.value));

我已将其限制为等于比较,但您可以使用switch基于您拥有的其他比较类型的比较来扩展比较。


推荐阅读