一些算法案例,如一个数组里取是个随机数(前端网备份)

先来看:
var arr = [1,2,3,4,5,undefined,7,8,9,10,11,12,13,14];
var len = arr.length;
console.log(len);
console.log(arr);
console.log(arr[5]);
if(arr[5]){
console.log(arr[5]);
}else{
console.log("b");
}
输出如下
14
(14) [1, 2, 3, 4, 5, undefined, 7, 8, 9, 10, 11, 12, 13, 14]
undefined
b
算法:
var result = [];
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14];
var len = arr.length;
console.log(len);
while(result.length < 10){
var idx = Math.floor(Math.random()*len);//[0,13]
if(arr[idx]){
console.log(arr[idx]);
result.push(arr[idx]);
arr[idx] = undefined;//加这个是为了防重复,比如result添加了arr数组内的1,就会让1变成underfind,然后去循环其他的,效率来说并不是最好的,不过比较简单好想
}
}

console.log(result);

原文地址:https://www.cnblogs.com/lsc-boke/p/10996857.html

时间: 2024-10-31 17:45:16

一些算法案例,如一个数组里取是个随机数(前端网备份)的相关文章

【算法C++】检测数组里是否有两个数之和等于某个数

问题: 检测数组里是否有两个数之和等于某个数 解决方法一:先将数组排序,然后从两头开始遍历 数组排序后,从左端开始取最小值,从右端取最大值, 判断两者之和与目标的大小: 1. 等于时,输出两个数: 2. 大于时,右端移到第2个数,继续判断: 3. 小于时,左端移到第2个数,继续判断. #include <iostream> #include <string> #include <algorithm> using namespace std; void fun1(int

小程序操作DOM以及JS求取字符串算法(前端网备份)

//js获取字符串的字节长度 //这套算法一个汉字2字节,字母符号1字节,按一行40个字节算4行 getLength:function(val){ var str = new String(val); var bytesCount = 0; for (var i = 0, n = str.length; i < n; i++) { var c = str.charCodeAt(i); if ((c >= 0x0001 && c <= 0x007e) || (0xff60

跨页面,a-&gt;b,b传数组给a(前端网备份)

实际情形是course creat(a) 和creat2(b)a页面点击按钮跳到b页面,b页面类似于提交表单,提交后返回a页面,a页面则多了一条数据用来展示以及删除,然后a页面再点按钮...此过程可以重复b页面var obj = new Object();obj.week = week;obj.time = time;obj.classroom=classroom; if(localStorage.courses==null){var c = [obj];//obj为数组,c为数组对象conso

处理字符串中逗号的js算法,3种(前端网备份)

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>111</title> </head> <body class="gray-bg&qu

二维json 遍历取值(前端网备份)

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>111</title> </head> <body class="gray-bg&qu

算法题之找出数组里第K大的数

问题:找出一个数组里面前K个最大数. 解法一(直接解法): 对数组用快速排序,然后直接挑出第k大的数.这种方法的时间复杂度是O(Nlog(N)).N为原数组长度. 这个解法含有很多冗余,因为把整个数组都排序了,而实际上我们不需要这样做. 解法二(K数组排序): 首先,创建一个长度为K的空数组.从原数组中先挑出K个数进行排序并放到这个空数组中.这一步的时间复杂度是O(Klog(K)). 接着,从剩下的N-K个值中,依次遍历并与上面数组的末尾的数(即里面的最大数)相比较,并插入到合适位置.这一步的时

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里 贴吧上有人问python 问题:有一段数组,把它分成几个区间,取每个区间的最大值存到另一个数组里 比如数组a[1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0] 看看python培训黄哥所写的2个方法. 第一种方法: # coding:utf-8"""黄哥python远程视频培训班https://github.com/pythonpeixun/article/blob/master/

NX二次开发-算法篇-判断找到两个数组里不相同的对象

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_curve.h> 5 #include <uf_modl.h> 6 #include <vector> 7 #include <uf_disp.h> 8 9 10 UF_initialize(); 11 12 //第一步,创建5条直线 13 UF_CURVE_line_t Coords1; 14 Coords1.start_point[0] = 0.0

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {