基于动态参数过滤数组

时间:2016-12-19 16:55:45

标签: javascript arrays javascript-objects

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

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

             },
        // ... () ...    
             ]

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

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

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

感谢。

4 个答案:

答案 0 :(得分:4)

使用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);




答案 1 :(得分:2)

您可以将Array#filter与键和值一起使用。



public class ContentModel {

    public int ContentID { get; set; }
    public string Link { get; set; }
    public string Title { get; set; }
    public string ContentHtml { get; set; }
    public DateTime LastModifiedDate { get; set; }
}




答案 2 :(得分:2)

function getFilteredCodes(poolArray,key,val){
    return poolArray.filter(function(item,ind){
        return item[key]==val;
    });
}

答案 3 :(得分:2)

或者带箭头符号的唯一行中的函数



var codes = [{ "code_id": "1", "code_name": "code 1", }, { "code_id": "2", "code_name": "code889" }];
var getFilteredCodes = (array, key, value) => array.filter(x => x[key] === value);
var FilteredCodes = getFilteredCodes(codes, "code_id", "2");
console.log(FilteredCodes);