我怎样才能按键获取对象?

时间:2015-10-28 07:18:06

标签: javascript

var test = [
    {
        id   : 'user01',
        pos0 : 2 
    },
    {
        id   : 'user01',
        pos0 : 3 
    },
    {
        id   : 'user02',
        pos1 : 5 
    },
    {
        id   : 'user02',
        pos1 : 6 
    },
    {
        id   : 'user03',
        pos2 : 8 
    },
    {
        id   : 'user03',
        pos2 : 9 
    }
]

这是示例数据,

和 我想要通过'pos2',得到测试[4]并测试[5]。

//like this : 

function getObjectByKey(array, key){
    // dosomething
};

..
var testArray = getObjectByKet(test, 'pos2');

我尝试使用$ .inArray或$ .map,但是如何使用它们。 我怎么能这样做?

问候。

2 个答案:

答案 0 :(得分:1)

请试试这个,

 function getObjectByKey(array, key){
        var users=[];
        $.map(array, function (user, index) {
            if (user[key])
                users.push(user)
        });
        return users;
    };

希望这会对你有所帮助。

同时更改您的函数调用。你错过了拼写的功能名称 在调用方法时尝试这个

var testArray = getObjectByKey(test, 'pos2');

答案 1 :(得分:0)

我建议使用Array.prototype.map()方法迭代一个数组。像这样:

var test = [
    {
        id   : 'user01',
        pos0 : 2 
    },
    {
        id   : 'user01',
        pos0 : 3 
    },
    {
        id   : 'user02',
        pos1 : 5 
    },
    {
        id   : 'user02',
        pos1 : 6 
    },
    {
        id   : 'user03',
        pos2 : 8 
    },
    {
        id   : 'user03',
        pos2 : 9 
    }
]
var user;
test.map(function(v) { if(v.id == 'user03') user = v;  }); 

这是FIDDLE