查找包含给定字符串的对象属性

时间:2015-09-16 20:57:11

标签: javascript object properties

我知道如果我知道属性的名称,我可以浏览一个对象并找到一个给定的属性。如果我想找到object.foo,我可以使用object [' foo']。

我们说我无法控制数据结构的方式,大约有100个属性,我只需要提取所有以字符串开头的属性&# 39;忍者'但我不知道这些房产的全名。 object.ninjaSword,object.ninjaStar,object.ninjaFavoriteFood等。

如何提取以' ninja'?开头的属性?如果已经回答我并且在搜索过程中错过了它,请提前致谢我的道歉。 :/

1 个答案:

答案 0 :(得分:0)

您需要遍历所有属性并过滤那些符合您要求的属性。

例如:

<?php
                if(empty($_SESSION['steamid'])){
                    echo 'Please sign in to view your items.';
                }else{
                    $id = $steamprofile['steamid'];
                    $key = 'xxxxxxxxxxxxxxxxxxxxxxxxxx';
                    if($id != null){
                        $link = file_get_contents('http://steamcommunity.com/profiles/'.$id.'/inventory/json/730/2');
                        $inventory = json_decode($link, true);
                        //print_r ($inventory);
                        print(sizeof($inventory));
                        foreach($inventory as $item => $id){
                            for($x = 0; sizeof($item[1]) <= $x; $x+=0){
                                echo 'ID: '.$id;
                            }
                        }
                    }
                }
            ?>

// iterate over all properties for (var name in obj) { // check if the name starts with 'ninja' if (name.indexOf('ninja') === 0) { // found a property that starts with 'ninja', so log the property // name, and the respective value console.log(name, obj[name]); } } 类型还有一个名为Object.keys()的方法,它将返回该对象的所有属性名称的数组。然后,您可以filter获取符合您要求的所有属性。然后你可以遍历那些并获得属性值。