2013-08-28 7 views
8

से तत्व को कैसे निकालें I nodejs और mongodb के लिए नया हूं। मेरी समस्या मैं निम्नलिखित प्रकारJSON सरणी

{ 
_id: 199, 
name: 'Rae Kohout', 
scores: [ 
    { type: 'exam', score: 82.11742562118049 }, 
    { type: 'quiz', score: 49.61295450928224 }, 
    { type: 'homework', score: 28.86823689842918 }, 
    { type: 'homework', score: 5.861613903793295 } 
] 
} 

यहाँ मैं प्रकार 'होमवर्क' के लिए स्कोर की तुलना और होमवर्क जो सबसे कम है इस का समाधान score.To निकालना चाहते हैं मैं

जैसे कुछ कोड लिखा है की एक json है है
var low = ''; 
for(var i=0;i<doc.scores.length;i++) 
{ 
if(doc.scores[i].type == 'homework'){ 
    if(low == ''){ 
     low = doc.scores[i].score; 
    } 
    if(doc.scores[i].score > low){ 
    console.log("index for lowest score is " + i); 
    low = ''; 
    } 
} 
} 

अब मैं सबसे कम स्कोर के लिए सूचकांक ढूंढने में सक्षम हूं, और उस सूचकांक में मूल्यों को हटाना चाहता हूं। मैंने Array.splice() विधि का उपयोग करने की कोशिश की लेकिन यह केवल ऐरे पर काम करता है। क्या कोई मुझे इसे हल करने में मदद कर सकते हैं ?

+0

क्या आप चाहते हैं अंतिम परिणाम होने की कोशिश करना चाहते हैं? 'स्कोर' एक सरणी है, इसलिए आप उस पर स्प्लिस का उपयोग कर सकते हैं। – dc5

उत्तर

27

इसलिए की तरह उपयोग splice:

doc.scores.splice(index, 1); 
+2

+1 सरणी से तत्व को निकालने का यह सही तरीका है। – Chad

+0

"जब स्प्लिस विधि को दो या दो से अधिक तर्कों के साथ बुलाया जाता है, तो हटाएं और हटाएं (वैकल्पिक रूप से) item1, item2, आदि, सरणी अनुक्रमणिका प्रारंभ से शुरू होने वाले सरणी के DeleteCount तत्व तर्क आइटम 1, item2, आदि द्वारा प्रतिस्थापित किए जाते हैं। हटाए गए तत्वों (यदि कोई हो) वाले ऐरे ऑब्जेक्ट को वापस कर दिया गया है। "- http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.12 –

+0

यदि मैं इसे स्थानांतरित करना चाहता हूं तो मुझे क्या करना चाहिए एक और जेसन चर के लिए ?? –

2

जोड़() विधि मौजूदा तत्वों को दूर करने और/या नए तत्व जोड़कर एक सरणी की सामग्री को बदल जाता है।

आप सूचकांक 3. से 1 तत्व निकालने के लिए इस

var myArray = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']; 
var removed = myArray.splice(3, 1); 

// removed is ["mandarin"] 
// myArray is ["angel", "clown", "drum", "sturgeon"] 
संबंधित मुद्दे