不使用loop生成一个长度n=100,每一项的数据类型为Number,值等于其下标的数组arry。

  这两天在群里看到一组uc国际的面试题,趁有空,也过了一遍,题目如下:

简单做了一下,暂时实现方法如下:

①setTimeout计时器

var i = 0,k = [],j;
function count(){
  if(i > 100){
    clearInterval(j);
    console.log(k);
  }else{
    k[i] = i++;
  }
}
j = setInterval(function(){
  count();
},20);

②递归

var rr = [];
function sum(n){
    if(n < 100){
        rr[n+1] = n + 1;
        return sum(n+1);
    }
}
sum(0);
console.log(rr);

③map+join

var newArr = new Array(100),i = 0;
var dd = newArr.join().split(‘,‘);
dd.map(function(item){
    if(i < 100){
       newArr[i] = i++;
    }
});
console.log(newArr);

//④Array.apply(null,{length: 100})

var newArr = Array.apply(null,{length: 100}),i = 0;
newArr.map(function(item,i){
    if(i < 100){
        newArr[i] = i++;
    }
});
console.log(newArr);

暂时想到这么点,后面想到一个加一个咯。

时间: 2024-10-17 17:28:48

不使用loop生成一个长度n=100,每一项的数据类型为Number,值等于其下标的数组arry。的相关文章

面试题 一个长度为100的数组,随机插入1-100,不重复,写出大致思路即可;

之前回答的是: 定义一个长度为100的a数组,存1-100,每次从数组里随机的位置取一个元素,放入b数组,并且从a数组移除: 后来百度了一下,说是数组重新排列不够好,更好的做法是 每次将随机取到的数与数组 "最后一位" 交换: 想想还是有点道理,不用重新排列,而且不需要两个数组 <script> function fn(n) { var arr = []; for (var i = 0; i < n + 1; i++) { arr[i] = i + 1; } for

不使用循环,如何创建一个长度为100的数组

前言: 问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 这是一个比较经典的前端面试题,也可以当笔试题,咋一看,好像难度不大,实际上考察的知识点还不少,值得写篇文章来备忘!废话不多说,直接进入正文! 正文: 为了理解这道题的意思,我们先用传统的方法来实现一下: 使用for方法: var arr = new Array(100); for(var i=0;i<arr.length;i++){ arr[i] = i; } console.log(a

转:在0~N(不包括N)范围内随机生成一个长度为M(M &lt;= N)且内容不重复的数组

1. 最朴素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随机数字 for (j = 0; j < i; j++) { if (num == result[j]) //如果和result数

产生一个长度为100的int数组,并向其中随机插入1-100,不能重复

int[] intArr=new int[100]; ArrayList myList=new ArrayList(); Random rnd=new Random(); while(myList.Count<100) { int num=rnd.Next(1,101); if(!myList.Contains(num)) myList.Add(num); } for(int i=0;i<100;i++) { intArr[i]=(int)myList[i]; }

【面试题】向一个长度为100的int数组,插入1-100的随机数,不能重复

1 public int[] GetNoRepeatArrayy(int arrLength) 2 { 3 int[] array = new int[arrLength]; 4 IList<int> list = new List<int>(); 5 //准备不重复的数据 6 for (int i = 0; i < array.Length; i++) 7 { 8 list.Add(i); 9 } 10 //将不重复的数据随机插入到数组中 11 for (int j = (

生成一个长度为10的整数数组,数组中每个元素都不同(数组中值的范围为1~20)

public static void main(String[] args) { //方法一:利用for循环// int arr[]=new int[10];// for (int i = 0; i < arr.length; i++) {// arr[i]=r.nextInt(20)+1;// for (int j = 0; j < i; j++) {// if(arr[i]==arr[j]){// i--;// }// }// }// System.out.println(Arrays.t

奇妙JS代码系列(三)一道有趣的题(创建一个长度为x数组)

原题描述: 不使用loop循环,创建一个长度为100的数组,并且每个元素的值等于它的下标 这个问题的一些变种例如给一个长度length和value,返回长度为length值全为value的数组等. 误区 最容易掉入陷阱的: var arr = new Array(100); arr = arr.map(function(item, index) { return index; }); 如果你的答案是这个,恭喜你成功掉入出题人的坑了. 解释 坑在Array(100),可以看看MDN的规范, new

一个简单的算法,定义一个长度为n的数组,随机顺序存储1至n的的全部正整数,不重复。

前些天看到.net笔试习题集上的一道小题,要求将1至100内的正整数随机填充到一个长度为100的数组,求一个简单的算法. 今天有空写了一下.代码如下,注释比较详细: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Text.RegularExpressions; 6 7 namespace TestNumber 8 { 9 cl

产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

写在前面 前天去面试了,给出的笔试中有这样的一道算法题,产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复 当时,脑子一热,也没想那么多,就用集合实现了一下,经面试官提醒,发现还有更好的方式来实现. 代码 首先看一下这样一段代码 1 namespace Wolfy.RandomDemo 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 List<int> lst = new List<i