隨機獲取數組內任意元素

Math.random() * arr.length 是 JavaScript 中常用的表達式,用于生成一個范圍在 [0, arr.length) 之間的隨機浮點數(包含 0,但不包含數組長度本身)。

作用說明:

  • Math.random() 生成一個 [0, 1) 區間的隨機浮點數(大于等于 0,小于 1)。
  • 乘以數組長度 arr.length 后,結果范圍變為 [0, arr.length)(大于等于 0,小于數組的長度)。

常見用途:

通常結合 Math.floor() 使用,來獲取數組中的隨機索引,從而隨機訪問數組元素:

const arr = ['a', 'b', 'c', 'd'];
// 生成 [0, arr.length) 范圍的隨機整數(數組的有效索引)
const randomIndex = Math.floor(Math.random() * arr.length);
// 獲取隨機元素
const randomElement = arr[randomIndex];console.log(randomIndex);    // 可能輸出:0、1、2 或 3
console.log(randomElement);  // 可能輸出數組中的任意一個元素

注意:

  • 結果是浮點數,直接作為數組索引會報錯,必須通過 Math.floor()Math.round() 等方法轉換為整數。
  • 由于不包含 arr.length,因此不會出現索引越界的問題(數組索引最大為 arr.length - 1)。

Math.floor() 是 JavaScript 中的一個內置函數,用于對一個數進行向下取整,返回小于或等于該數的最大整數。

基本語法:

Math.floor(x)

參數:

  • x:需要進行向下取整的數字。

功能說明:

  • 該函數會將輸入的數字 x 向下取整到最接近的整數。
  • 對于正數,它會去掉小數部分,只保留整數部分(例如 Math.floor(3.8) 返回 3)。
  • 對于負數,它會取比該數小的最大整數(例如 Math.floor(-2.3) 返回 -3,而不是 -2)。
  • 如果參數是整數,則直接返回該整數(例如 Math.floor(5) 返回 5)。

示例:

console.log(Math.floor(4.7));   // 輸出: 4
console.log(Math.floor(2.1));   // 輸出: 2
console.log(Math.floor(-1.3));  // 輸出: -2
console.log(Math.floor(7));     // 輸出: 7
console.log(Math.floor(0.999)); // 輸出: 0

Math.floor() 常用于需要對數值進行向下取整的場景,例如計算分頁數量、處理整數除法等。

總結:可以寫 Math.floor(Math.random() * arr.length ) 作為數組的下標

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95991.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android studio gradle 訪問不了

1.通過國內鏡像站 2.通過本地部署 參考這個搞定 https://blog.csdn.net/2401_82819685/article/details/144542784

科普:企業微信的第三方應用涉及的“配置應用權限”

企業微信的第三方應用涉及“配置應用權限”,它在不同階段含義不同:開發階段意指應用自身所需的功能權限,安裝階段意指企業管理員對應用使用范圍的控制,產生此歧義的問題,歸根到低還是語言的縮寫問題,設想一…

YOLOv11改進大全:從卷積層到檢測頭,全方位提升目標檢測性能

## 1 引言YOLO(You Only Look Once)系列作為目標檢測領域的重要算法,以其**高效推理**和**良好精度**贏得了廣泛認可。2024年9月,Ultralytics團隊正式發布了YOLOv11,在先前版本基礎上引入了**多項架構改進**和**訓練優…

JWT全面理解

目錄 一、JWT是什么 1、身份認證(最核心用途) 2、信息交換 3、授權控制 二、JWT的核心價值 三、如何理解JWT的結構和工作原理 1、三部分結構解析 2、核心工作流程 四、JWT的使用步驟 1、添加依賴 2、添加配置文件 3、創建實體類 4、創建JWT…

量子文件傳輸系統:簡單高效的文件分享解決方案

🌐 在線體驗地址:https://share-file.narutogis.com/ 📤 項目概述 量子文件傳輸系統是一款基于Python Flask開發的高效文件管理與分享工具,致力于提供簡單、安全、可靠的文件傳輸解決方案。系統支持用戶管理、文件上傳下載、自動…

基于 GitHub Actions 的零成本自動化部署:把 Vite/Vue3 項目一鍵發布到 GitHub Pages 的完整實戰

1. 實現自動化部署1.1. 創建 vue 項目# 1. 安裝/確認 Node.js(>14) node -v # 推薦 20.x# 2. 創建項目(交互式,選 Vue3 Router 等) npm init vuelatest github-actions-demo # 創建vite項目 # 或:v…

minio 文件批量下載

MinIO 批量下載功能說明 1. 功能描述 前端勾選多個對象文件后,一次性將這些對象從 MinIO 拉取并打包成 ZIP,通過瀏覽器直接下載。整體特性: 支持跨桶批量下載(不同 bucket 的對象可同時下載)。服務端采用流式壓縮邊…

機器學習11——特征選擇與稀疏學習

上一章:機器學習10——降維與度量學習 下一章:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備[TOC] 機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到…

整理python快速構建數據可視化前端的Dash庫

一.Dash框架# 導入 Dash 相關庫 import dash from dash import dcc, html # dcc 是 Dash 核心組件庫,html 是 HTML 組件庫 from typing import Generic# 創建一個 Dash 應用實例 app dash.Dash(__name__)# 定義應用的布局 app.layout html.Div(children[# 添加一…

RNN循環神經網絡(一):基礎RNN結構、雙向RNN

RNN循環神經網絡 什么是循環神經網絡? 循環神經網絡(Recurrent Neural Network, RNN)是一類專門用于處理序列數據的神經網絡架構。與傳統的前饋神經網絡不同,RNN具有"記憶"能力,能夠捕捉數據中的時間依賴關系…

#C語言——刷題攻略:牛客編程入門訓練(十):攻克 循環控制(二),輕松拿捏!

🌟菜鳥主頁:晨非辰的主頁 👀學習專欄:《C語言刷題合集》 💪學習階段:C語言方向初學者 ?名言欣賞:"代碼行數決定你的下限,算法思維決定你的上限。" 目錄 1. BC82 乘法表…

daily notes[16]

文章目錄意大利語單詞 **“bello”**一、核心含義二、變形規則:最重要的部分1. 當 “bello” 位于 **名詞前面** 時2. 當 “bello” 位于 **名詞后面** 或 **動詞后面** 時三、用法總結與對比四、其他用法和常見表達references意大利語單詞 “bello” 融合了 指示形…

【知識庫】計算機二級python操作題(二)

文章目錄基本操作題1基本操作題2基本操作題3簡單應用題1簡單應用題2綜合應用題1基本操作題1考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現以下功能,隨機選擇一個手機品牌屏幕輸出。 # 請在...處使用一行…

Nginx 服務用戶與防盜鏈配置

目錄 Nginx 服務用戶與防盜鏈配置 1. 隱藏版本號 1.1 配置方法 1.2 生效與驗證 2. 修改當前程序賬號 2.1 操作步驟 3. 緩存時間 3.1 配置方法 3.2 說明 4. 日志分割 4.1 實現方式(腳本自動分割) 5. 連接超時時間 5.1 核心超時指令&#xff0…

域格4G模塊通信協議之HTTP(三):下載大文件的兩種方式

域格ASR系列模塊支持HTTP下載大文件,本文將提供兩種方式。一、直接通過URC上報數據基礎操作核心指令說明配置說明響應說明應用示例注意點二、HTTP Range分段下載核心指令說明注意點一、直接通過URC上報數據 若文件體積適中,且需要 MCU 即時處理數據&…

Android 圖片 OOM 防護機制設計:大圖加載、內存復用與多級緩存

1. 為什么圖片加載總讓 Android 開發抓狂? 圖片是 Android 應用中不可或缺的元素,從用戶頭像到高清壁紙,從商品詳情頁到動態表情包,圖片無處不在。然而,圖片加載是內存管理的雷區,稍不留神就可能觸發臭名昭著的 OutOfMemoryError(OOM)。為啥圖片這么“吃內存”?原因很…

9月9日

TCP 服務器端#include <myhead.h> #define SER_PORT 8888 //服務器端口號 #define SER_IP "192.168.108.179" //服務器IP地址 int main(int argc, const char *argv[]) {//創建一個用于連接的套接字文件描述符int sfd socket(AF_INET, SOCK_STRE…

Docker生產部署

目錄 一、準備工作&#xff1a;理解 Docker 與 Spring Boot 的關系 1. Docker 是什么&#xff1f; 2. Spring Boot 為什么適合 Docker&#xff1f; 二、編寫Dockerfile 三、配置管理 掛載外部配置文件 四、用 docker-compose 編排多服務 一、準備工作&#xff1a;理解 Do…

ARM 基礎(3)

ARM匯編與C語言函數的相互調用及參數傳遞匯編調用C函數參數傳遞規則 前4個參數通過寄存器 R0-R3 傳遞&#xff0c;超出部分從右向左壓棧。32位返回值存于 R0&#xff0c;64位整數用 R0 和 R1&#xff0c;浮點數通過 S0/D0 返回。示例&#xff1a;ARM匯編調用C函數.global _star…