"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo seleccionar eficientemente una propiedad aleatoria de un objeto JavaScript?

¿Cómo seleccionar eficientemente una propiedad aleatoria de un objeto JavaScript?

Publicado el 2024-11-06
Navegar:509

How to Efficiently Select a Random Property from a JavaScript Object?

Seleccionar una propiedad aleatoria de un objeto JavaScript

Obtener una propiedad aleatoria de un objeto JavaScript es una tarea fundamental que puede surgir en diversas codificaciones escenarios. Considere un objeto que contenga pares clave-valor como:

{cat: 'meow', dog: 'woof', snake: 'hiss'}

Tradicionalmente, esta tarea podría ser Esto se logra a través de un bucle largo que recorre las propiedades del objeto, selecciona uno aleatoriamente y recupera su valor. Sin embargo, este enfoque puede ser detallado y computacionalmente ineficiente.

Una solución optimizada

Una solución más concisa y eficiente para seleccionar una propiedad aleatoria de un objeto la proporciona siguiente código:

var randomProperty = function (obj) {
    var keys = Object.keys(obj);
    return obj[keys[ keys.length * Math.random() << 0]];
};

Este código emplea los siguientes pasos:

  1. Recupera todas las claves de propiedad del objeto usando Object.keys(), lo que da como resultado una matriz de claves.
  2. Genera un índice aleatorio dentro del rango de índices de matriz usando Math.random().
  3. Accede a la propiedad en el índice calculado usando el operador de notación entre corchetes [ ].

Esta solución evita la necesidad de bucles y recupera directamente la propiedad aleatoria, lo que la hace concisa y computacionalmente más rápida.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3