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

下面是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日

相关文章

  • 基于layui内置模块(element常用元素的操作)

    现在就来给你详细讲解一下“基于layui内置模块(element常用元素的操作)”的完整攻略。 1. 概述 layui是一款非常优秀的前端UI框架,内置了许多常用模块,其中重要的就是element,该模块主要提供了对HTML元素进行操作的常用方法,例如常用的tab选项卡、进度条、导航等。接下来,我们就来详细讲一下如何使用layui的element模块。 2.…

    JavaScript 2023年6月11日
    00
  • 使用JS location实现搜索框历史记录功能

    有一种常见的搜索框历史记录功能是,当用户在搜索框中输入关键字后,网站会记录这个关键字,并在搜索框下方显示搜索历史记录,用户可以快速选择历史记录中的关键字再次进行搜索。 实现这个功能可以使用JS中的location对象。以下是实现搜索框历史记录功能的详细步骤: 1. 监听搜索框的输入事件 首先,需要在搜索框上添加事件监听器,监听搜索框的输入事件。当用户在搜索框…

    JavaScript 2023年6月11日
    00
  • JavaScript如何判断对象有某属性

    当我们想在JavaScript中访问对象的某些属性时,首先需要判断该属性是否存在。下面是几种常见的判断对象是否有属性的方法: 1. hasOwnProperty()方法 hasOwnProperty()是JavaScript内置对象的一个方法,用来判断对象自身属性中是否有指定的属性名称。下面是一个使用hasOwnProperty()的例子: const ob…

    JavaScript 2023年5月27日
    00
  • JavaScript实现动态添加、移除元素或属性的方法分析

    JavaScript实现动态添加、移除元素或属性的方法分析 动态添加元素 方法一:createElement()方法 我们可以使用createElement()方法来创建一个新的元素节点,然后将该节点添加到文档中的某个元素中作为其子元素。其基本语法为: document.createElement(tagName) 其中,tagName指定新节点的标签名称,…

    JavaScript 2023年6月10日
    00
  • JavaScript 巧学巧用

    JavaScript 巧学巧用完整攻略 JavaScript 是一种脚本语言,具有广泛的应用场景,尤其在 Web 开发中独树一帜。掌握 JavaScript 不仅可以增加开发效率,还可以开发出更加炫酷、交互性更强的网站和应用。本文将为大家介绍 JavaScript 巧学巧用的攻略,包括常用的技巧和使用示例。 1. 事件监听 事件监听是 JavaScript …

    JavaScript 2023年5月18日
    00
  • html页面显示年月日时分秒和星期几的两种方式

    让我们来探讨一下如何在HTML页面中显示当前的年月日、时分秒和星期几的两种方式。 方式一:使用JavaScript实现 实现步骤: 在HTML页面中添加一个显示日期时间的标签,例如这里我们使用<p>标签作为容器,<p id=”datetime”></p>: <p id="datetime">…

    JavaScript 2023年5月27日
    00
  • js 数组 find,some,filter,reduce区别详解

    当我们在开发 JavaScript 程序时,经常会用到数组的各种方法,其中包括 find、some、filter 和 reduce 等方法。这些方法可以帮助我们在数组中找到特定的元素、过滤不需要的元素、对数组进行操作并返回新的数组等。 下面就一个一个地详细讲解这些方法的用法和区别: find 方法 find 方法返回满足条件的第一个元素,如果找不到,返回 u…

    JavaScript 2023年5月27日
    00
  • javascript String 的扩展方法集合

    下面是关于“javascript String 的扩展方法集合”的完整攻略。 标准的 String 方法 JavaScript 中的 String 拥有许多标准的方法,例如 charAt()、substr()、slice()、toUpperCase() 等等。这些方法可以在 MDN 上找到详细的文档说明和使用示例。 扩展的 String 方法 除了标准的方法…

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