2012-06-14 16 views
18

संभव डुप्लिकेट:
Remove specific element from a javascript array?एक जावास्क्रिप्ट ऐरे से ऑब्जेक्ट निकालें?

विशेष रूप से मैं एक सरणी के रूप में निम्नानुसार है:

var arr = [ 
    {url: 'link 1'}, 
    {url: 'link 2'}, 
    {url: 'link 3'} 
]; 

अब आप मूल्यवान एलीमेंट url "लिंक 2" निकालना चाहते हैं और हटाने के बाद निम्नानुसार केवल सरणी:

arr = [ 
    {url: 'link 1'}, 
    {url: 'link 3'} 
]; 

तो इस समस्या को मेरी मदद कौन कर सकता है? धन्यवाद एक बहुत

+4

मुझे नहीं लगता कि यह उस प्रश्न का प्रत्यक्ष डुप्लिकेट है। दूसरे प्रश्न में केवल एक आदिम मूल्य का उपयोग किया जाता है। 'indexOf' ** ** ** यहां काम नहीं करेगा। इसलिए, जब तक इंडेक्स (हमेशा) ज्ञात नहीं होता है, तब तक पहेली का थोड़ा सा 'splice' के साथ गायब होता है ... –

+0

मैंने इस प्रश्न को कई बार पहले ही देखा है। –

+0

'arr.filter (फ़ंक्शन (तत्व) { वापसी (element.url === 'लिंक 2'? गलत: सत्य); })' –

उत्तर

3

एक सरणी में एक तत्व को दूर करने के जोड़ फ़ंक्शन का उपयोग करें: यदि आप एक तत्व संपत्ति के आधार पर सूचकांक जानने के बिना सरणी का एक तत्व को दूर करना चाहते हैं तो

arr.splice(1, 1); 

, आप होगा सरणी को फिर से भरने और प्रत्येक तत्व की प्रत्येक संपत्ति:

for(var a = 0; a < arr.length; a++) { 
    for(var b in arr[a]) { 
     if(arr[a][b] === 'link 2') { 
      arr.splice(a, 1); 
      a--; 
      break; 
     } 
    } 
} 
17

आप एक फ़िल्टर कर सकते हैं।

var arr = [ 
    {url: "link 1"}, 
    {url: "link 2"}, 
    {url: "link 3"} 
]; 

arr = arr.filter(function(el){ 
    return el.url !== "link 2"; 
}); 

पुनश्च:Array.filter विधि जावास्क्रिप्ट 1.6 में mplemented है, सबसे आधुनिक ब्राउज़रों द्वारा समर्थित है, पुराने ब्राउज़र समर्थन करने के लिए, आप अपने खुद के एक लिख सकता है।

+3

कृपया आवश्यकताएं शामिल करें ... हर कोई इतनी भाग्यशाली नहीं है कि ऐसा कोई भाग्यशाली हो समारोह (एक शिम के बिना)। –

+0

@pst हाँ, जोड़ा गया। – xdazz

+0

बिल्कुल सही, मुझे आवंटित करने में मदद की! –

संबंधित मुद्दे