क्या आप सरलता से बता सकते हैं कि GetTicker और GetRecords किस समय बिंदु पर आधारित हैं? उदाहरण के लिए, एक बहुत ही अजीब सवाल है, कोड का यह टुकड़ाः function main (() { while (true) { var records = exchange.GetRecords ((); records.pop ((); लॉग ((records.length); Sleep ((60000); } } अंतिम आउटपुट रिकॉर्ड की लंबाई हमेशा 0 रही हैः
लेकिन अगर pop ((() को नोट किया जाए तो कॉल करेंः function main (() { while (true) { var records = exchange.GetRecords ((); //records.pop ((); लॉग ((records.length); Sleep ((60000); } } यह एक बहुत ही अच्छा वीडियो है।
यदि कोई while loop नहीं है, तो pop ((() कॉल को बनाए रखना ठीक हैः function main (() { var records = exchange.GetRecords ((); records.pop ((); लॉग ((records.length); Sleep ((60000); }
क्या आप जवाब दे सकते हैं?
शून्यGetRecords द्वारा लौटाया गया सरणी, वास्तव में निम्न स्तर के रखरखाव के समान है, इसलिए इसे सीधे नहीं बदला जा सकता है।
गुइगुइ17fशायद यह js भाषा की विशेषताओं के कारण है? मैं slice))) के साथ एक बार कॉपी करने के लिए ठीक है, पता नहीं क्यों...
आविष्कारक मात्रा - छोटे सपनेइस deep copy function का प्रयोग करके, जब भी कोई record प्राप्त होता है, तो उसे deep copy कर देता है, और फिर आप उस variable को बदल सकते हैं जिसे आप copy कर रहे हैं. `` var cloneObj = function ((obj) { // ऑब्जेक्ट फ़ंक्शन को गहराई से कॉपी करें var str, newobj = obj.constructor === Array? [] : {}; if (typeof obj!== 'object') { return; } else if (JSON) { str = JSON.stringify ((obj); // धारावाहिक वस्तु newobj = JSON.parse ((str); // रिडक्शन } else { for (var i in obj) { newobj[i] = typeof obj[i] === 'object'? cloneObj ((obj[i]) : obj[i]; } } return newobj; }; ``
आविष्कारक मात्रा - छोटे सपनेslice ((() यह पूरी तरह से नकल है, संदर्भ नहीं है. संदर्भित क्रियाएं वास्तव में एक ही चर हैं, अगली बार जब आप इसे बदलते हैं तो यह प्रभावित होगा.
गुइगुइ17fयह सच है. यह एपीआई दस्तावेजों में स्पष्ट करने के लिए सलाह दी जाती है ताकि गलत संचालन को रोका जा सके.