javascript实现数组中的内容随机输出

yizhihongxing

下面是Javascript实现数组中内容随机输出的完整攻略:

1. 生成随机数

Javascript标准库中有一个Math对象,可以使用Math.random()方法生成[0,1)之间的随机数。那么我们只需要将这个数乘以数组的长度,然后向下取整,就可以得到一个数组下标的随机数。

var arr = ['apple', 'banana', 'orange', 'grape'];
var randomIndex = Math.floor(Math.random() * arr.length);
console.log(arr[randomIndex]);

2. 数组洗牌

如果我们希望每次随机输出的内容都不一样,我们可以将数组中的元素顺序打乱。这可以使用Javascript的sort()方法和Math.random()方法一起实现。具体步骤如下:

  1. 创建排序函数,该函数返回一个负数、正数或零。这个函数会将传入的两个参数随机排列,这样就可以将整个数组随机排列。
function shuffle() {
  return Math.random() -0.5;
}

var arr = ['apple', 'banana', 'orange', 'grape'];
arr.sort(shuffle);
console.log(arr);

上面代码中,我们创建了一个排序函数shuffle,返回值为Math.random()-0.5。这个函数会随机返回负数、零或正数。当出现负数时,sort()方法就会将第一个参数排在第二个参数的前面,否则就排在后面。

  1. 对数组调用sort()方法,传入shuffle函数。

此时,数组中的元素为随机顺序。

var arr = ['apple', 'banana', 'orange', 'grape'];
arr.sort(shuffle);
console.log(arr);

示例说明

比如现在有一个数组,里面装着10首歌曲名字,我们想要将它们打乱顺序播放,那么我们可以使用两种方式:

  1. 使用第一种方式,在播放每首歌曲时,使用上文提到的方法随机生成一个下标,然后以此下标获取到该首歌曲的名字。
var songs = ['song1', 'song2', 'song3', 'song4', 'song5', 'song6', 'song7', 'song8', 'song9', 'song10'];
function playRandomSong() {
  var randomIndex = Math.floor(Math.random() * songs.length);
  console.log('Now playing: ' + songs[randomIndex]);
}
  1. 使用第二种方式,对歌曲名数组进行乱序处理,然后按照处理后的顺序进行播放。
var songs = ['song1', 'song2', 'song3', 'song4', 'song5', 'song6', 'song7', 'song8', 'song9', 'song10'];
songs.sort(function() {
  return Math.random() - 0.5;
});

for (var i = 0; i < songs.length; i++) {
  console.log('Now playing: ' + songs[i]);
}

使用上面的代码,不仅可以达到打乱顺序的目的,而且可以保证每首歌曲都会被播放到。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现数组中的内容随机输出 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)

    下面是详细讲解: 1. JQuery form表单提交前验证单选框是否选中 步骤1:给表单元素设置id属性 在HTML表单中添加id属性,例如: <form id="myForm"> <!– 表单元素 –> </form> 步骤2:编写JQuery代码 使用JQuery库完成表单验证功能,代码如下:…

    JavaScript 2023年6月10日
    00
  • js获取字符串最后一位方法汇总

    JS获取字符串最后一位方法汇总 在JS开发过程中,获取字符串最后一位是一个很常见的需求。下面将对常见的获取字符串最后一位的方法进行汇总并做详细讲解。 方法一:使用字符串的slice方法 使用字符串的slice方法可以获取字符串从指定位置开始到指定位置结束的子串,当指定结束位置为-1时,即可得到字符串的最后一个字符。 var str = ‘hello’; va…

    JavaScript 2023年5月28日
    00
  • 详解vue-router导航守卫

    下面就详细讲解下“详解vue-router导航守卫”的完整攻略。 什么是vue-router导航守卫? vue-router导航守卫分为全局守卫和路由独享守卫,可以在导航过程中拦截和控制,用来控制页面跳转、权限校验等操作。可以通过导航守卫来判断用户是否有权限访问某个页面,或者在某个页面离开时做数据清理等操作。 导航守卫一共包含三种类型:全局前置守卫、全局后置…

    JavaScript 2023年6月11日
    00
  • react-router-dom v6 使用详细示例

    这里给出使用 React-Router-Dom 版本 6.x 的详细攻略,包含基本概念、用法介绍、代码示例等,方便大家快速上手。 基本概念 React-Router-Dom 是一个 React 的声明式路由库,在 React 应用中使用路由的时候非常方便。在使用 React-Router-Dom 时,主要涉及到以下几个核心概念: Router:定义路由的容器…

    JavaScript 2023年6月11日
    00
  • 由document.body和document.documentElement想到的

    想要使用document.body或document.documentElement,需要先了解它们的含义。 document.documentElement代表了整个HTML文档,包括标签及其下的所有内容。而document.body代表了标签及其下的所有内容。在使用document.body或document.documentElement时,可以通过它…

    JavaScript 2023年6月11日
    00
  • 通过JS动态创建一个html DOM元素并显示

    创建一个HTML DOM元素是非常方便的,Javascript提供了多种方法来实现这个目标。 一、使用document.createElement() 可以使用document.createElement()方法来创建任何HTML元素。例如,要创建一个<div>元素,您可以使用以下代码: // 创建一个 div 元素 const divEleme…

    JavaScript 2023年6月10日
    00
  • javascript 二进制运算技巧解析

    JavaScript 二进制运算技巧解析 JavaScript 中有一些二进制运算符可以用来操作数值的二进制形式,包括按位与、按位或、按位异或、左移、右移、无符号右移等。这些运算符可以用于进行一些高效的位运算操作,下面将会为大家详细讲解这些二进制运算技巧的使用方法及示例。 按位与(&)运算符 按位与运算符的符号为“&”,对于两个二进制位数,若…

    JavaScript 2023年5月19日
    00
  • JavaScript浮点数及运算精度调整详解

    JavaScript浮点数及运算精度调整详解 概述 在JavaScript中,使用浮点数进行运算时会出现精度不准确的情况,这是由于JavaScript中的浮点数采用二进制存储,在进行运算时会出现舍入误差的情况。本文将详细讲解浮点数精度问题,以及如何调整浮点数运算的精度来避免误差。 浮点数精度问题 在JavaScript中,浮点数采用IEEE 754标准进行存…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部