在javascript中抽象对象键

时间:2012-05-13 22:03:52

标签: javascript jquery function

我正在尝试创建一个搜索功能,构建如下:

function Search(array, key, query, target){
    var search_string = new RegExp(query, "i");

    var filtered_list = $.grep(array, function (value, index) {
        return (value.key.search(search_string) !=-1);
    });
    $(target).empty(); 

    $.each(filtered_list, printListItem); 
}

问题在于keytarget变量。我不确定如何声明它们,以便它们可以在value.key.search$(target).empty();中使用。如果我将它们声明为字符串,则不起作用。例如:

var array = [{'name': 'ben'}, {'name':'kit'}];
var query = $(this).val();
var key = "name";
var target = "div#recipes";
Search(array, key, query, target);

这并不让我感到惊讶......但我想知道的是我应该如何去抽象函数,包括关键值和目标值。谢谢!

1 个答案:

答案 0 :(得分:4)

使用bracket notation.

var filtered_list = $.grep(array, function (value, index) {
    return (value[key].search(search_string) !=-1);
}); //           ↑   ↑