«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу кратко выбрать случайное свойство из объекта JavaScript?

Как я могу кратко выбрать случайное свойство из объекта JavaScript?

Опубликовано 7 ноября 2024 г.
Просматривать:438

How can I select a random property from a JavaScript object concisely?

Краткий выбор случайного свойства из объекта JavaScript

В JavaScript объекты представляют собой пары ключ-значение, хранящиеся в хеш-таблице. Чтобы получить определенное свойство объекта, необходимо знать точный ключ свойства. Однако иногда может оказаться желательным выбрать случайное свойство объекта.

Общий подход предполагает перебор свойств объекта, их подсчет, а затем генерацию случайного целого числа в этом диапазоне. Используя этот подход, вы должны выполнить итерацию по объекту один раз, чтобы определить длину, а затем повторить итерацию снова, чтобы найти случайное свойство по этому индексу.

Однако существует более краткий и зачастую более быстрый способ достижения этой цели:

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

В этом подходе используется метод Object.keys(), который возвращает массив всех ключей свойств в объекте. Умножая длину этого массива на случайное значение меньше 1 (с использованием битового сдвига), мы получаем случайный индекс внутри массива. Индексация в массив с помощью этого случайного индекса обеспечивает выбранный ключ свойства. Наконец, при доступе к объекту с помощью этого ключа извлекается связанное значение свойства.

Этот метод более краток и часто работает быстрее, чем итеративные подходы, что делает его предпочтительным выбором для выбора случайного свойства из объекта JavaScript.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3