2014-03-12 128 views
1

獲取字典的對象我有一本字典:通過屬性

[ object , object, object, object, object ] 

object包括:標識和名稱。

我有一個Id('123456'),我想用這個id獲取對象。

有沒有另一種解決方案我該如何做到這一點,而無需循環的對象?

任何幫助讚賞!

+6

_without爲loop_忘記它 –

+0

什麼「其他」?你有什麼解決方案? – Bergi

+0

爲什麼你不想使用for循環有什麼具體的原因嗎? – Ani

回答

1

如果你想使用香草JS方法,你可以使用filter。這幾乎和$.grep一樣。

var result = arr.filter(function (obj) { 
    return obj.id === '123456'; 
}); 
2

這是一個數組,您可以使用jQuery.grep來獲取ID爲"123456"的元素。

var result = $.grep(arr, function(obj) { 
    return obj.id === '123456'; 
}); 

陣列還提供了一個.filter方法(需要的瀏覽器不支持它填充工具):

var result = arr.filter(function(obj) { 
    return obj.id === '123456'; 
}); 
+0

非常好的解決方案 – anurupr

+0

它的一個循環,但有中斷和返回條件 – Jack

+0

是的,它內部使用循環。但給出這樣的錯覺,它不會是一個好的答案,毫無疑問。 – VJS

3

loops,然後去recursion,我只是假設你有一個變量,數組稱爲xArr

var xObj = check(0,"123456"); 

function check(cnt,id) { 
if(xArr[cnt].id === id) 
    { 
    return xArr[cnt]; 
    } 
else if(cnt === xArr.length - 1) { 
    return null; 
    } 
else { 
    cnt += 1; 
    return check(cnt, id); 
    }  
} 
+0

@Downvoter:你能告訴我你投票的原因..?所以我可以糾正它..? –

+0

我沒有倒下,因爲這是一個有趣的問題,但我個人認爲(a)通過傳入id使它更加完整,(b)沒有使用任何全局變量,因爲沒有理由。 –

+0

@DaveNewton現在的代碼是否正確..? –