निम्न कोड में धक्का:जावास्क्रिप्ट: अनपेक्षित व्यवहार खाली सरणी
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else
obj1[j.toString()] = [].push(j);
}
निम्नलिखित उत्पादन का उत्पादन:
obj1
=> { '0': 1, '1': 1, '2': 1 }
और मैं बस कृपया पता है क्यों करना चाहते हैं।
(मैं अब जागरूक कर रहा हूँ कि निम्नलिखित कोड:
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else {
obj1[j.toString()] = [];
obj1[j.toString()].push(j);
}
}
मुझे मेरे वांछित आउटपुट दे देंगे:
obj1
=> { '0': [ 0 ], '1': [ 1 ], '2': [ 2 ] }
)
ठीक है, '[] '' Array.prototype' जैसा ही है, वहां कोई खाली सरणी नहीं है, और आप' obj' के अंदर कुछ भी नहीं दबा रहे हैं। दूसरा कोड स्निपेट ऐसा करने का सही तरीका है, जहां आप वास्तव में एक खाली सरणी बनाते हैं – adeneo