کیا آپ مختصر طور پر بتا سکتے ہیں کہ ریٹریکشن کے دوران گیٹ ٹکر اور گیٹ ریکارڈز کس وقت کے نقطہ پر مبنی ہیں؟ مثال کے طور پر ، ایک بہت ہی عجیب مسئلہ درپیش آیا ، اس کوڈ کا ایک ٹکڑا: function main (() { while (true) { var records = exchange.GetRecords ((); records.pop ((); log ((records.length) ؛ نیند ((60000) ؛ } } آخری آؤٹ پٹ ریکارڈز کی لمبائی ہمیشہ 0 رہی ہے:
لیکن اگر آپ pop ((() کال کو حذف کردیں: function main (() { while (true) { var records = exchange.GetRecords ((); //records.pop (() ؛ log ((records.length) ؛ Sleep ((60000) ؛ } } اس کے بعد ، ہم نے اپنے صارفین کے لئے ایک نئی ویب سائٹ شروع کی۔
اگر کوئی whilst loop نہیں ہے تو ، pop (()) کال کو برقرار رکھنے میں کوئی مسئلہ نہیں ہے: function main (() { var records = exchange.GetRecords ((); records.pop ((); log ((records.length) ؛ نیند ((60000) ؛ }
کیا آپ جواب دے سکتے ہیں؟
صفرGetRecords لوٹاتا ہے کہ ایک ہی متغیر ہے جو نیچے کی سطح پر برقرار رکھا جاتا ہے، لہذا یہ براہ راست تبدیل نہیں کیا جا سکتا.
گائیگی17fشاید یہ جے ایس زبان کی خصوصیات کی وجہ سے ہے؟ میں نے ایک بار سلائس (() کاپی کیا تو ٹھیک ہے ، مجھے نہیں معلوم کہ کیوں...
ایجاد کاروں کی مقدار - خواباس کی کوشش کریں گہری کاپی کی تقریب، ہر بار جب ریکارڈ حاصل کی گہری کاپی، اور پھر آپ کو آپ کی مرضی کے مطابق تبدیل کر سکتے ہیں. `` var cloneObj = function ((obj) { // گہری نقل آبجیکٹ فنکشن var str، newobj = obj.constructor === Array ؟ [] : {}؛ if (typeof obj!== 'object') { واپسی } 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]؛ } } واپس newobj؛ }؛ ``
ایجاد کاروں کی مقدار - خوابslice ((() یہ مکمل نقل ہے، حوالہ نہیں ہے۔ حوالہ دیا گیا عمل دراصل ایک ہی متغیر ہے، اگلی بار جب آپ اسے تبدیل کرتے ہیں تو اس کا اثر پڑتا ہے۔
گائیگی17fیہ سچ ہے۔ غلط استعمال سے بچنے کے لئے ، یہ تجویز کی جاتی ہے کہ آپ API دستاویزات میں وضاحت کریں۔