ไม่มีทางที่จะหาค่าสูงสุด / ต่ำสุดในกรณีทั่วไปโดยไม่ต้องวนซ้ำองค์ประกอบnทั้งหมด(ถ้าคุณเปลี่ยนจาก 1 เป็น n-1 คุณจะรู้ได้อย่างไรว่าองค์ประกอบnไม่ใหญ่ (หรือเล็กกว่า) กว่า สูงสุด / นาทีปัจจุบัน)?
คุณบอกว่าค่าต่างๆจะเปลี่ยนไปทุก ๆ สองวินาที หากคุณทราบแน่ชัดว่าค่าใดเปลี่ยนแปลงคุณสามารถเริ่มต้นด้วยค่าสูงสุด / นาทีก่อนหน้าและเปรียบเทียบกับค่าใหม่เท่านั้น แต่ในกรณีนี้หากค่าใดค่าหนึ่งที่แก้ไขเป็นค่าสูงสุด / นาทีเก่าของคุณคุณอาจ ต้องวนซ้ำอีกครั้ง
อีกทางเลือกหนึ่ง - อีกครั้งเฉพาะในกรณีที่จำนวนค่าที่เปลี่ยนแปลงมีขนาดเล็กจะเป็นการจัดเก็บค่าในโครงสร้างเช่นทรีหรือฮีปและเมื่อค่าใหม่มาถึงคุณจะต้องแทรก (หรืออัปเดต) อย่างเหมาะสม แต่คุณสามารถทำได้หรือไม่นั้นไม่ชัดเจนตามคำถามของคุณ
หากคุณต้องการรับองค์ประกอบสูงสุด / ต่ำสุดของรายการที่กำหนดในขณะที่วนลูปผ่านองค์ประกอบทั้งหมดคุณสามารถใช้บางอย่างเช่นข้อมูลโค้ดด้านล่าง แต่คุณจะไม่สามารถทำได้หากไม่ผ่านองค์ประกอบทั้งหมด
var list = { "a":4, "b":0.5 , "c":0.35, "d":5 };
var keys = Object.keys(list);
var min = list[keys[0]];
var max = list[keys[0]];
var i;
for (i = 1; i < keys.length; i++) {
var value = list[keys[i]];
if (value < min) min = value;
if (value > max) max = value;
}