一、题目
编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组, * 该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
二、代码
//返回数组
function numArr(n){
var randArr = [],temNum;
//将整数取值范围作为变量提取出来
var min = 2, max = 32;
if(n==0 || n > 31) return false
//参数校验
// if(!isThere(n)) return [];//是否存在
// if(!typeOK(n) && !isOKStr(n)) return [];//n的类型是否为数据类型
// n = formatInitNum(n);
// if(!rangeOK(n, min, max)) return [];//校验范围
for(var i=0;i<n;i++){
temNum = randNum(min,max);
if(randArr.length>0){
var checknum = checkArr(randArr,temNum);
if(checknum){
i--;
}else{
randArr.push(temNum);
}
}else{
randArr.push(temNum);
}
}
return randArr
}
//获取单个随机数
function randNum(min,max){
var range = max-min;
var rand = Math.random();
return (min+Math.round(rand*range))
}
//判断随机数是否重复
function checkArr(arr,num){
let temArr = arr;
var count = 0; //数字重复次数
for(var i=0;i<arr.length;i++){
if(arr[i]==num){
count++
}
}
return (count>0?true:false)
}
//数组排序--查看有没有相同的数组
function sortArr(limit){
var temArr = numArr(limit),temNum;
for(var i=0;i<temArr.length;i++){
for(var j=i+1;j<temArr.length;j++){
if(temArr[j]>temArr[i]){
temNum = temArr[j];
temArr[j] = temArr[i];
temArr[i] = temNum;
}
}
}
return temArr;
}
//显示数组
document.write(sortArr(30)+'</br>');
document.write('输入长度:30,实际长度:'+sortArr(30).length);
// document.write(numArr(30));
三、处理数组方法
JavaScript提供了许多处理数组的方法,下面是一些常用的方法及其案例代码。
- push()方法:向数组末尾添加一个或多个元素。
var fruits = ["apple", "banana"];
fruits.push("orange", "grape");
console.log(fruits); // ["apple", "banana", "orange", "grape"]
- pop()方法:从数组末尾移除一个元素,并返回该元素。
var fruits = ["apple", "banana", "orange"];
var removedFruit = fruits.pop();
console.log(removedFruit); // "orange"
console.log(fruits); // ["apple", "banana"]
- shift()方法:从数组开头移除一个元素,并返回该元素。
var fruits = ["apple", "banana", "orange"];
var removedFruit = fruits.shift();
console.log(removedFruit); // "apple"
console.log(fruits); // ["banana", "orange"]
- unshift()方法:向数组开头添加一个或多个元素。
var fruits = ["banana", "orange"];
fruits.unshift("apple", "grape");
console.log(fruits); // ["apple", "grape", "banana", "orange"]
- concat()方法:合并两个或多个数组,返回一个新数组。
var fruits1 = ["apple", "banana"];
var fruits2 = ["orange", "grape"];
var mergedFruits = fruits1.concat(fruits2);
console.log(mergedFruits); // ["apple", "banana", "orange", "grape"]
- slice()方法:从数组中提取指定的部分元素,返回一个新数组。
var fruits = ["apple", "banana", "orange", "grape"];
var selectedFruits = fruits.slice(1, 3);
console.log(selectedFruits); // ["banana", "orange"]
- splice()方法:从数组中添加或删除元素。
var fruits = ["apple", "banana", "orange"];
fruits.splice(1, 1, "grape", "kiwi");
console.log(fruits); // ["apple", "grape", "kiwi", "orange"]
- forEach()方法:对数组中的每个元素执行一个函数。
var fruits = ["apple", "banana", "orange"];
fruits.forEach(function(fruit) {
console.log(fruit);
});
// 输出:
// "apple"
// "banana"
// "orange"
四、JavaScript概念
JavaScript是一种广泛使用的编程语言,主要用于网页开发。
JavaScript的基本概念:
- 变量和数据类型:在JavaScript中,你可以使用变量来存储各种数据,如数字、字符串、布尔值、对象、数组等。JavaScript是一种弱类型语言,这意味着变量的类型可以在运行时改变。
- 函数:函数是一段可重复使用的代码块,可以接受参数并返回一个值。在JavaScript中,函数可以作为一等公民,可以作为参数传递给其他函数,也可以作为变量存储。
- 对象:对象是包含属性和方法的集合。属性是变量,方法则是函数。在JavaScript中,对象是使用花括号{}来创建的。
- 事件:事件是用户与网页交互时发生的事情,如点击、鼠标移动、键盘输入等。JavaScript允许你定义事件处理程序,以便在事件发生时执行特定的代码。
- DOM(文档对象模型):DOM是HTML和XML文档的编程接口,它提供了一种方式来访问和操作文档的结构。在JavaScript中,你可以使用DOM来动态地修改网页内容、结构和样式。
- 异步编程:JavaScript是单线程的,这意味着它一次只能执行一个任务。为了提高性能并允许用户与网页交互,JavaScript使用异步编程模型,如回调函数、Promises和async/await。
- 模块和模块化:在现代JavaScript开发中,模块是一种组织代码的方式。通过模块化,你可以将代码分解为独立的文件,每个文件都有一个特定的功能或任务。
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 是 web 开发人员必须学习的 3 门语言中的一门:HTML 定义了网页的内容,CSS 描述了网页的布局,JavaScript 控制了网页的行为。
五、热门文章
【温故而知新】JavaScript数字精度丢失问题
【温故而知新】JavaScript的继承方式有那些
【温故而知新】JavaScript中内存泄露有那几种
【温故而知新】JavaScript函数式编程
【温故而知新】JavaScript的防抖与节流
【温故而知新】JavaScript事件循环