Bạn có thể nói một cách đơn giản về thời gian mà GetTicker () và GetRecords () lấy dữ liệu dựa trên?
Ví dụ, khi gặp một câu hỏi rất kỳ lạ, đoạn mã dưới đây:
function main() {
while (true) {
var records = exchange.GetRecords();
records.pop();
Log(records.length);
Sleep(60000);
}
}
Độ dài của các record cuối cùng là 0:

Tuy nhiên, nếu bạn bỏ đi pop () và gọi:
function main() {
while (true) {
var records = exchange.GetRecords();
//records.pop();
Log(records.length);
Sleep(60000);
}
}
Và kết quả cuối cùng là bình thường:

Nếu không có vòng lặp while, thì không có vấn đề gì khi gọi pop (():
function main() {
var records = exchange.GetRecords();
records.pop();
Log(records.length);
Sleep(60000);
}

Bạn có thể trả lời không?
用这个 深拷贝函数试下, 每次 获取到的 records 深拷贝一下, 然后就可以随意修改 复制后的 变量了。
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;
};
- 1

