आप सुनिश्चित नहीं मद सूची में है आपको क्या करना चाहिए रहे हैं:
var idx = my_list.indexOf(old_item)
if (idx !== -1) { my_list[idx] = new_item }
लेकिन किसी और मुझे लगता है कि यह करने के लिए सबसे अच्छा तरीका है।
सूचकांक पर एक मूल्य सेट -1 एक त्रुटि से आगे नहीं बढ़ेगी, लेकिन अभी भी वस्तु एक सामान्य js वस्तु में एक महत्वपूर्ण स्थापित करने के रूप में संशोधित करेगा:
var my_list = [1, 2, 3];
var old_item = 5;
var new_item = 10;
my_list[my_list.indexOf(old_item)] = new_item;
// my_list is [1, 2, 3, '-1': 10]
// my_list.length is still 3
// Object.keys(my_list) is [ '0', '1', '2', '-1' ]
तो आप शायद नहीं चाहिए इसे करने के लिए।
उतना अच्छा लगता है जितना आप मुझे प्राप्त कर सकते हैं। लेकिन आपको जांचना चाहिए कि 'indexOf() 'पहले सफल होता है या नहीं। – Barmar
यह सही है। सरणी पर नकारात्मक इंडेक्स छिपे हुए हैं, यानी वे छिपे हुए जेएस डेटा/मान हैं, वे पुनरावृत्त नहीं होते हैं, वे JSON स्ट्रिंग द्वारा प्रकट नहीं होते हैं, न ही स्ट्रिंग रूपांतरणों के लिए सरणी पर, या स्रोत के लिए सरणी आदि। और वे सरणी के लंबाई मान को नहीं बदलते हैं - ऐसा लगता है कि वे बिल्कुल नहीं हैं। लेकिन वे मौजूद हैं! उदाहरण: [सरणी] [- 1]> इसे सौंपा गया नवीनतम डेटा वापस कर देगा। तो आपकी विधि व्यावहारिक रूप से सुरक्षित है और सबसे तेज़ उपलब्ध है। –