पायथन dict.items
dict
दोनों की चाबियाँ और मान दोनों युक्त टुपल्स की एक सूची देता है। जावास्क्रिप्ट में tuples नहीं है, तो यह एक घोंसला सरणी होना होगा।
यदि आप अंतर दिखाने के लिए मुझे थोड़ा पाइथन कोड क्षमा करेंगे।
>>> {1:2, 2:3}.items()
[(1, 2), (2, 3)]
>>> {1:2, 2:3}.values()
[2, 3]
मैं स्वीकार किए जाते हैं जवाब वस्तुओं के मूल्यों की एक सरणी है, जो अजगर समारोह dict.values
के बराबर है रिटर्न को देखते हैं। dict.items
के लिए क्या पूछा जाता है। ऐसा करने के लिए बस लूप करें और 2 तत्व सरणी के घोंसला वाले सरणी का निर्माण करें।
function items(obj){
var ret = [];
for(v in obj){
ret.push(Object.freeze([v, obj[v]]));
}
return Object.freeze(ret);
}
मैं Object.freeze
में डाल पंडिताऊ हो सकता है और लागू है कि दिए गए मान परिवर्तित नहीं किया जाना चाहिए, अजगर tuples के अचल स्थिति का अनुकरण करने के लिए। जाहिर है यह अभी भी काम करता है अगर आप इसे बाहर ले जाते हैं।
ऐसा लगता है कि ऐसा करने में कुछ हद तक जब साहचर्य फैशन के बजाय एक रेखीय में वस्तु पर पुनरावृत्ति में है कि यह प्रयोग किया जाता है items
के प्रयोजन धरा और यह हैश मान की गणना के साहचर्य सरणी में प्रत्येक तत्व को देखने के लिए बचा जाता है । छोटी वस्तुओं के लिए जो परवाह करते हैं लेकिन बड़े लोगों के लिए यह आपको धीमा कर सकता है और जावास्क्रिप्ट में जो भी आप चाहते हैं उसे करने के लिए एक और बेवकूफ तरीका हो सकता है।
ऐसा करने का एक और नया तरीका Object.entries() का उपयोग करना है जो आप वही करेंगे जो आप चाहते हैं।
Object.entries({1:1, 2:2, 3:3})
.forEach(function(v){
console.log(v)
});
समर्थन दस्तावेज़ में वर्णित उन ब्राउज़र संस्करणों तक सीमित है।
स्रोत
2017-02-23 23:09:25
मुझे शायद यह जोड़ना चाहिए कि _reason_ मैं ऐसा करना चाहता हूं ताकि मैं सरणी को क्रमबद्ध कर सकूं (चाबियां केवल यूआईडी हैं), तो शायद मुझे "एसोसिएटिव सरणी में आइटम्स को सॉर्ट करने के तरीके" से पूछा जाना चाहिए था। –
सवाल गलत है। पायथन का 'dict.items()' (कुंजी, मान) tuples की एक सूची देता है। Retval का आपका उदाहरण 'dict.values ()' से मेल खाता है। –