के साथ प्रतिस्थापित करें, आज ऑब्जेक्ट्स के सरणी के अंदर एक मिलान ऑब्जेक्ट को प्रतिस्थापित करने के लिए मैं SO question पर आया।जावास्क्रिप्ट: सीधे इंडेक्स बनाम Array.splice()
ऐसा करने के लिए, वे lodash का उपयोग कर वस्तुओं की सरणी के अंदर मिलान करने वाली वस्तु का सूचकांक ढूंढ रहे हैं।
var users = [{user: "Kamal"}, {user: "Vivek"}, {user: "Guna"}]
var idx = _.findIndex(users, {user: "Vivek"}); // returns 1
अब वे जोड़() का इस्तेमाल किया इस तरह की जगह,
users.splice(idx, 1, {user: "Gowtham"})
लेकिन क्यों नहीं,
users[idx] = {user: "Gowtham"};
अब मेरे सवाल है, तो ऐसा कोई कारण, ऐसा करने के लिए नहीं है या splice() का उपयोग करने के लिए?
क्योंकि array[index] = 'something';
का उपयोग करना इतना आसान है। यही है ना ?
यह सच है कि का उपयोग कर 'सरणी [सूचकांक]' की तुलना में तेजी है 'Array.splice()': http://jsperf.com/array-index-vs-splice। लेकिन शायद आपका माइलेज सरणी के आकार के आधार पर भिन्न हो सकता है? – Terry
जब तक आप हटाए गए मूल्य (जो यहां नहीं किया जा रहा है) प्राप्त करना चाहते हैं, तो इंडेक्स असाइनमेंट अधिक समझदार होगा और अधिक तेज़ी से हो सकता है। –
आह, एक अंतर यह है कि '.plice() '' .push() 'की तरह कार्य करेगा यदि' idx' सरणी के' लम्बाई 'से परे है, जबकि इंडेक्स असाइनमेंट सरणी की लंबाई बढ़ाएगा। –