Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取具有特定属性的对象列表_Javascript_Jquery_Arrays_Search_Object - Fatal编程技术网

Javascript 获取具有特定属性的对象列表

Javascript 获取具有特定属性的对象列表,javascript,jquery,arrays,search,object,Javascript,Jquery,Arrays,Search,Object,我有一个名为playerResults的数组,每个索引都是一个玩家名,每个索引都是一个playerObj对象。每个玩家都有一个属性名称和括号 有没有办法搜索playerResults并返回所有具有特定括号编号的对象 我正在使用javascript实现这一点,使用jquery 编辑:以下是代码: function showBracket(groupID) { //console.log(playerResults); var matching = p

我有一个名为
playerResults
的数组,每个索引都是一个玩家名,每个索引都是一个
playerObj
对象。每个玩家都有一个属性
名称
括号

有没有办法搜索
playerResults
并返回所有具有特定括号编号的对象

我正在使用javascript实现这一点,使用jquery

编辑:以下是代码:

        function showBracket(groupID) {
        //console.log(playerResults);
        var matching = playerResults.filter(function(player) {
            console.log(player.bracket);
            return player.bracket == 1; // or so
        });            
我的playerResults如下所示:

console.log(playerResults)
[Tiger Woods: playerObj, Phil Mickelson: playerObj, Dustin Johnson: playerObj, Zach Johnson: playerObj, Brandt Snedeker: playerObj…]
Brandt Snedeker: playerObj
    addWin: function addWin() {
    bracket: 3
    getBracket: function getBracket() {
    getWins: function getWins() {
    name: "Brandt Snedeker"
    setBracket: function setBracket(bracketNumber) {
    wins: 0
    __proto__: playerObj
Charles Howell III: playerObj
Dustin Johnson: playerObj
Hunter Mahan: playerObj

对不起,这里太乱了,希望这有点道理。

您要找的是:


但是,旧浏览器不支持此方法,如果希望支持,可能需要对其进行填充。或者使用。

您可以编写自己的函数来完成此操作,但我建议您使用Composition,它是一个引入类似LINQ的投影和映射函数的库

安装后,您可以使用过滤器功能“查询”阵列:

我为您准备了一个JSFIDLE:


在处理数组和对象时,下划线中有很多有用的函数-389;。filter()只是其中之一。

首先,请提供一些对象的示例代码-代码总是比代码描述更清晰。第二,你说你想通过“组号”来识别对象,但没有提到这是在哪里定义的。是的,我现在正在读这个。我确信这是因为我对这个有点陌生,但是如果我手动定义对象,我如何给它我需要的所有方法?现在我只是创建一个playername |括号数组,然后分解它们,设置playerResults[playername]=new playerObj(playername,括号)。我尝试了这个方法,grep从其他地方搜索,但没有返回任何结果。对调试它有什么建议吗?我试图在filter函数中控制台.log(player),但没有返回任何内容。这听起来像是您的
playerResults
数组为空,否则将调用回调函数。你能告诉我们你的密码吗?
var matching = playerResults.filter(function(player) {
    return isSpecificGroupNumber(player.name, player.bracket); // or so
});
var playerResults = [
    { name: "blah", bracket:"one"},
    { name: "blah2", bracket:"three"},
    { name: "blah3", bracket:"two"},
    { name: "blah4", bracket:"one"}
];
var bracketOne = _.filter(playerResults, function(o) {
    return o.bracket == "one";
});