打乱数组内数据顺序

从数组最后一个数据开始和它前面的任意索引对应的数据交换

let datalist = [1, 2, 3, 4, 5, "a", "b", "c", 6, 7, 8, 9, 12, 14, 15];

function shuffle(arr) {
let m = arr.length;
while(m > 1) {
let index = Math.floor(Math.random() * m--);//交换的索引
[arr[m], arr[index]] = [arr[index], arr[m]] //交换数据
}
return arr;
}
var data = shuffle(datalist)
console.log(data)

原文地址:https://www.cnblogs.com/youngMe/p/11022078.html

时间: 2024-11-02 01:52:26

打乱数组内数据顺序的相关文章

记一次逻辑代码的实现(数组内数据按照指定时间差进行分组)

业务场景 有如下数据: id intime outtime1190771865,2019-11-26 13:27:26,2019-11-26 13:27:26 1190771865,2019-11-26 13:27:26,2019-11-26 13:27:26 1190771865,2019-11-26 16:42:46,2019-11-26 16:42:46 1190771865,2019-11-26 13:27:26,2019-11-26 13:27:26 1190771865,2019-1

js实现数组内数据的上移和下移

var swapItems = function(arr, index1, index2){ arr[index1] = arr.splice(index2,1,arr[index1])[0] return arr } var arr = [1,2,3] var newArr = [] upData (arr, index) { if (this.arr.length > 1 && index !== 0) { newArr = swapItems(arr, index, index

javascript如何将数组元素的顺序打乱

javascript如何将数组元素的顺序打乱:下面介绍一下如何将数组元素原有的顺序打乱,可能在实际编码中使用不是太频繁,不过也并非一无是处,下面就介绍一下如何实现此功能,代码实例如下: function mytest() { return 0.5-Math.random(); } var arr=[]; for(var i=0;i<100;i++) { arr[i]=i; } arr.sort(mytest) document.write(arr); 以上代码实现我们想要的功能,能够将数组中元素

随机打乱数组元素

把数组内的元素随机打乱,重新进行排列  C#版: 1 public static void Shuffle<T>(T[] array) 2 { 3 Random random = new Random(); 4 5 for (int i = 0; i < 10; i++) 6 { 7 int idx = random.Next(i, 10); 8 9 //swap elements 10 T tmp = array[i]; 11 array[i] = array[idx]; 12 arr

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

HTML-JS 数组 内置对象

[JS中的数组] 1.数组的基本概念? 数组是在内存空间中连续存储的一组有序数据的集合 元素在数组中的顺序,称为下标.可以使用下标访问数组的每个元素 2.如何声明一个数组 ① 使用字面量声明:var arr=[]; 在JS中,同一数组可以存储各种数据类型. 例如:var arr=[1,"2",true,4,{}]; ② 使用new关键字明,var arr= new Array(参数); >>>参数可以是: a.省略,表示创建一个空数组 b.参数为一个整数,表示声明一个

数组内元素排序及数组排序

#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *[email protected][@&q

使用JavaScript的数组实现数据结构中的队列与堆栈

今天在项目中要使用JavaScript实现数据结构中的队列和堆栈,这里做一下总结. 一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! 如下图所示: 二. 在JavaScript中实现队列和堆栈 在JavaScript中实现队列和数组主要是通过数组,js数组中提供了以下几个方法可以让我们很方便实现队列和堆栈: sh

c# 打乱数组

有时候得到了一个List,我想把它随机排列一下顺序.而且如果针对不同类型的List都能用,就要用到泛型. 其实思想很简单,就是从原List中每次随机取一项,添加到新的List中,并在原List中删除.这样重复,直到原List为空为止. 不过要注意,如果要保护原List不受变化,就必须先Copy一份List,再在Copy上进行操作 public static List<T> GetRandomList<T>(List<T> inputList) { //Copy to a