2012-07-05 68 views
0

我從AJAX返回此對象: Javascript對象檢查

 
reseeds: [,…] 
0: {id:1, t:13447, userid:1, time:2012-07-04 19:07:54, username:x, userlevel:8, donor:no,} 
1: {id:2, t:13447, userid:2, time:2012-07-04 09:04:27, username:y, userlevel:0, donor:no,} 
2: {id:3, t:13447, userid:3, time:2012-07-04 09:04:30, username:z, userlevel:0, donor:no,} 
3: {id:4, t:13447, userid:4, time:2012-07-04 09:04:35, username:w, userlevel:0, donor:no,} 

而且我需要檢查此對象是否包含「userid」中的某個值。
I.E .:
我有值= 2,所以如何檢查是否有一個對象數組在userid == 2? 如果任何userid == 2,我需要返回TRUE,否則返回FALSE。 如果value = 5,我需要tor返回FALSE,因爲對象中沒有一個userid包含userid = 5。 是否有一些函數或我需要編寫自己的循環?

+0

是來自阿賈克斯的原始回報,我建議你應該在JSON格式返回,更容易解析 – 2012-07-05 17:44:48

+0

是的,返回是JSON格式。這只是從Chrome開發人員工具複製的源代碼。 – Koga 2012-07-05 17:53:55

回答

2

有一個Array.some功能,你可以使用:

//generic parameter for 'Array.some' function 
function useridValidator(userid){ 
    return function(item){ 
     return item.userid === userid; 
    }; 
} 
console.log(ajaxData.reseeds.some(useridValidator(1))); //true 
console.log(ajaxData.reseeds.some(useridValidator(5))); //false 
0

我這個做:

var user_data = _return[idx+'s']; 
for(var i=0;i<user_data.length;i++) 
{ 
    if(user_data[i]['userid'] == _returnX['datas']['userid']) 
    { 
    var add = false; 
    } 
} 

if(add === undefined) 
{ 
    user_data[user_data.length] = _returnX['datas']; 
    // do some stuff 
}