Thursday, 15 July 2010

Javascript sync object with an array -


मेरे पास एक वस्तु है:

  var obj = {'a': true, B ': false,' c ': false,' d ': true}   

और मेरे पास एक सिंक्रनाइज़ सरणी है जिसमें कुंजी हैं जिनकी मान हैं true ऑब्जेक्ट।

  var arr = ['a', 'd']   

इसलिए यदि obj निम्नलिखित में परिवर्तन: ( एक का मान गलत में बदल गया है)

  obj = {'a': गलत, 'बी': गलत, 'सी' : <  <  

तब arr को निम्न से समन्वयित किया जाना चाहिए: ( a तत्व Arr )

  arr = ['d'];   

मैंने दो समाधानों के बारे में सोचा है:

  1. जब भी ऑब्जेक्ट परिवर्तन होता है, मैं उसी कुंजी को उस धमाके पर धक्का / हटाए जाने के ऑपरेशन के साथ ही एआरएम में हेर रखता हूं। ऑब्जेक्ट में कुंजी के मूल्य के आधार पर सरणी (ऑब्जेक्ट के अपडेट्स को आसानी से मेरे मामले में एंगुलेज का उपयोग करके पता लगाया जा सकता है)

  2. जब भी ऑब्जेक्ट में परिवर्तन होता है, मैं नए सरणी के साथ नए सरणी को बदलूंगा जिसमें केवल उन कुंजियां होती हैं जिनके मूल्य पर सेट है सच अंदर।

    कौन सा समाधान बेहतर है ??

    आप एक साधारण वर्ग का उपयोग कर सकते हैं:

      फ़ंक्शन जोड़ी (obj, arr) {this.obj_ = obj || {}; This.arr_ = arr || []; this.updateArray (); }; Pair.prototype.set = function (key, val) {this.obj_ [key] = val; this.updateArray (); }; Pair.prototype.updateArray = function () {this.arr_.length = 0; के लिए (इस var में key.obj_) {if (this.obj_.hasOwnProperty (कुंजी)) {if (this.obj_ [key] === true) {this.arr_.push (key); }; }; }; }; Pair.prototype.getArray = function () {return JSON.stringify (this.arr_); };    

No comments:

Post a Comment