Saturday 15 August 2015

ruby - How do I combine array values with array of hashes? -


मेरे पास हैश की एक सरणी है:

  [{:: foo = & gt; 1,: बार = & gt; 2}, {: foo = & gt; 2,: बार = & gt; 4} ...]   

और पूर्णांकों की एक सरणी:

  [3, 6]   

I चाहते हैं कि मानों को पूर्णांक सरणी और हैश से कुछ के साथ समाप्त करें:

  [{:: foo = & gt; 1,: बार = & gt; 2,: बाज़ = & gt; 3}, {: foo = & gt; 2,: बार = & gt; 4,: बाज़ = & gt; 6}]   

मैं वर्तमान में ऐसा कर रहा हूं:

  myArrayOfrayHash.each_with_index | myHash, अनुक्रमणिका | मेरा ह्रास [: baz] = myArrayOfIntegers [अनुक्रमणिका] अंत   

क्या यह सही दृष्टिकोण है?

मैं एक और कार्यात्मक दृष्टिकोण की कल्पना कर रहा था जहां मैं एक साथ दोनों सरणियों पर पुन: जैसे zip + नक्शा

कोशिश करें:

  की आवश्यकता 'पीपी' ary_of_hashes = [{:: foo = & gt; 1,: बार = & gt; 2}, {: foo = & gt; 2,: बार = & gt; 4}] [3, 6]। ज़िप (ary_of_hashes) .ईच करो | आई, एच | H [: baz] = i पीपी ary_of_hashes   

में कौन सा परिणाम:

  [{foo = & gt; 1,: bar = & gt; 2 ,: Baz = & gt; 3}, {: foo = & gt; 2,: bar = & gt; 4,: baz = & gt; 6}]   

ज़िप इसके लिए एक अच्छा उपकरण है, लेकिन नक्शा वास्तव में बहुत कुछ नहीं खरीद पाएगा, कम से कम कुछ नहीं जो आप इस मामले में प्रत्येक के साथ आसानी से नहीं कर सकते हैं।

इसके अलावा, कैमकोल जैसे myArrayOfHashes का उपयोग करके चर का नाम नहीं दें, इसके बजाय snake_case का उपयोग करें, जैसे ary_of_hashes । हम कक्षा के नामों के लिए कैमल सीज़ का उपयोग करते हैं। तकनीकी रूप से हम चर के लिए मिश्रित मामले का उपयोग कर सकते हैं, लेकिन सम्मेलन से हम ऐसा नहीं करते हैं।

और, प्रत्येक_वि इन_इनडेक्स का उपयोग करना संभव है, लेकिन यह अजीब कोड में परिणाम, क्योंकि यह आपको [3, 6] में कोई अनुक्रमणिका का उपयोग करने के लिए मजबूर करता है। ज़िप दो सरणियों के संबंधित तत्वों में शामिल होने दें और आपको हैश मालिश करने की आवश्यकता होगी।

No comments:

Post a Comment