基于动态参数的过滤器数组

Nav*_*dar 4 javascript arrays javascript-objects

说我有一个json对象数组,如下所示:

var codes = [{
            "code_id": "1",
            "code_name": "code 1",            ,
             }, {
            "code_id": "2",
            "code_name": "code889",

             },
        // ... () ...    
             ]
Run Code Online (Sandbox Code Playgroud)

如何根据动态输入参数过滤代码数组?

所以我正在寻找一个通用函数,它将输入数组以及键和值作为i / p。

var filteredCodes = getFilteredCodes(codes, "code_id", 2);
Run Code Online (Sandbox Code Playgroud)

谢谢。

kuk*_*kuz 5

利用Array.prototype.filter筛选出的结果-见下面的演示:

var codes = [{"code_id": "1","code_name": "code 1"}, {"code_id": "2","code_name": "code889"}];

function getFilteredCodes(array, key, value) {
  return array.filter(function(e) {
    return e[key] == value;
  });
}

var filteredCodes = getFilteredCodes(codes, "code_id", 2);

console.log(filteredCodes);
Run Code Online (Sandbox Code Playgroud)