สมมติว่าคุณมีวัตถุ Javascript เช่น {'cat': 'meow', 'dog': 'woof' ... } มีวิธีที่กระชับกว่านี้ในการเลือกคุณสมบัติแบบสุ่มจากวัตถุมากกว่าวิธีที่คดเคี้ยวยาว ๆ ที่ฉันคิดขึ้นมา :
function pickRandomProperty(obj) {
var prop, len = 0, randomPos, pos = 0;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
len += 1;
}
}
randomPos = Math.floor(Math.random() * len);
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (pos === randomPos) {
return prop;
}
pos += 1;
}
}
}