0

I have a javascript json result list - self.data.allOrganizationsList

self.data.allOrganizationsList contains list of organization whose properties are

customentityaccess, id, isLabsAccessAllowed, memberCount, organizationname, organizationwebsite

i want to access an organization object which has id = 402881702121fec10121520080930001

I am trying to get this from the below statement, but since each item in the list is an object, i am unable to get the desired result.

self.data.allOrganizationsList.id['402881702121fec10121520080930001']`
//(or)
self.data.allOrganizationsList["id"]['402881702121fec10121520080930001']

Other alternative is to use the $.each(self.data.allOrganizationList, function(index, item)).

But can i achieve the above result without iterating the - self.data.allOrganizationList

From the $.grept()

var myvar = $.grep(response.permissionedOrganizations, function(v) {
            return v.id === '40288170227c142201227eb56c5c000a';
        })[0];
console.log(myvar);

displays undefined in console. Am i missing something.

4

4 に答える 4

4

あなたの構造では$.grep、正しい要素を除外したいと考えています:

var arr = [
  {id: 1, value: 2},
  {id: 3, value: 4}
];

$.grep(arr, function(v) { return v.id === 3; })[0];  // second element

これは舞台裏で反復処理を行うことに注意して[key]ください。表記法を使用して正しい要素を取得する方法はありません。これは、構造が定義されている方法ではないためです。

于 2012-11-07T12:39:04.330 に答える
2

jQuery.grep( 配列, 関数(elementOfArray, indexInArray) [, 反転] )

フィルター関数を満たす配列の要素を検索します。元の配列は影響を受けません。 小切手

于 2012-11-07T12:52:54.203 に答える
0

配列の場合、id によってキーが設定されていないため、上記で説明したように、各項目をループして id プロパティを確認する必要があります。

ID で確認できるようにするには、次のようにする必要があります。

var allOrganizationsList =    
    {
        "id1": {
            "memberCount": 1
        },
        "id2": {
            "memberCount": 2
        }
    };

allOrganizationsList["id1"].memberCount;
于 2012-11-07T12:36:59.713 に答える
0

値に基づいて複数のオブジェクトを検索する必要がある場合は、リストを 1 回繰り返すだけです。

for (var i in list) {
    var id = list[i].id;
    my_table[id] = list[i];  // for unique ids
}

一意でない IDの場合my_table、配列の連想配列として作成します。

if (!my_table[id]) my_table[id] = [list[i]];
else my_table[id].push(list[i]);

後者の場合、my_table['12399123'] は結果の配列を返すことができます。

于 2012-11-07T12:42:04.170 に答える