JS-数组和函数冒泡排序递归函数
数组和函数
数组
计算数组中所有元素的和
// 定义数组var nums = [23, 789, 67, 500, 123, 78, 900, 671];// 1.计算数组中所有元素的和var sum = 0;for (i = 0; i < nums.length; i ++) {sum += nums[i];}console.log('数组中所有元素的和为:',sum)console.log('')
计算数组中元素的平均数
var avg = sum /nums.length;console.log('数组中元素的平均数为:',avg)
获取数组中最大的元素
var max = nums[0];//默认值是第一个元素for (var i = 1;i < nums.length; i ++) {if (nums[i]>max) {max = nums[i];}}console.log('数组中最大的元素为:',max);
获取数组中最小的元素
var min = nums[0];for (var i = 1;i < nums.length ; i ++) {if (nums[i] < min) {min = nums[i];}}console.log('数组中最小的元素为:', min)
数组的冒泡排序
var nums = [23, 789, 67, 500, 123, 78, 900, 671];console.log(nums);// 开始循环,决定冒泡次数for (var n = 1; n < nums.length; n ++) {// 进行冒泡, 把当前最大的放在最后for (var i = 0; i < nums.length - n; i ++) {// 如果前面的元素比下一个元素大,交换两个元素的值if (nums[i] > nums[i + 1]) {// 交换两个元素的值var temp = nums[i];nums[i] = nums[i + 1];nums[i + 1] = temp;}}}console.log(nums);
冒泡 从大到小
var nums = [23, 789, 67, 500, 123, 78, 900, 671];console.log(nums);// 循环 决定冒泡次数for (var i = 1; i < nums.length; i ++) {// 进行冒泡排序for (var j = 0; j < nums.length - i; j ++) {// 如果前面的元素比后面的元素小if (nums[j] < nums[j + 1]) {// 交换两个元素的值var temp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = temp;}}}console.log(nums);
数组排序-sort
var nums = [23, 789, 67, 500, 123, 78, 900, 671]nums.sort(function(next,curr) {//return next-curr;if (next < curr) {return -1;}}) ;console.log(nums);nums.sort(function(next,curr) {return curr-next;});console.log(nums)
数组的平均值排序
// 先计算平均值,再进行数组排序var nums = [[234, 23, 34, 123, 899],[12, 34, 611],[902, 78, 675, 34, 2, 6],[89, 78, 90, 67, 617, 890]]// 排序nums.sort(function(next,curr) {return avg(next) - avg(curr)});console.log(nums)function avg(arr) {// 计算每个数组的和 遍历每个数组var sum = 0;for (var i = 0;i < arr.length; i ++) {sum += arr[i];}// 计算平均值return sum / arr.length;}
函数
判断是否是素数
function isPrime(num) {// 从2开始到num-1,一次去整除numfor (var i = 2;i < num-1; i ++) {// 如果有一个能被整除,不是素数了if (num % i === 0) {return false}}// 如果能够执行到这里return true;
}
console.log(isPrime(197)); //ture
console.log(isPrime(100)); //false// 输出100-200之间的素数
for (var i = 100;i <= 200; i ++) {if(isPrime(i)) {console.log(i);}
}
所有参数的和
// 定义函数,计算所有参数的和
function sum() {var res = 0;for (var i = 0;i < arguments.length; i ++) {res += arguments[i]}return res
}
console.log(sum(1,2,3))
获取数组中最大的数
function max() {var res = arguments[0];for (var i = 0;i < arguments.length; i ++) {if (arguments[i]>res) {res = arguments[i];}}return res;
}console.log(max(23, 789, 67, 500, 123, 78, 900, 671))
数组排序
function arraySort(arr, isDown) {// 循环进行冒泡for (var i = 1; i < arr.length; i ++) {// 进行冒泡排序for (var n = 0; n < arr.length - i; n ++) {// 如果 isDown 是true,降序排列if (isDown) { // 降序排列if (arr[n] < arr[n + 1]) {// 交换两个元素的值var temp = arr[n];arr[n] = arr[n + 1];arr[n + 1] = temp;}} else {// 升序排列if (arr[n] > arr[n + 1]) {// 交换两个元素的值var temp = arr[n];arr[n] = arr[n + 1];arr[n + 1] = temp;}}}}// 返回排好序的数组return arr;
}
// 定义数组
var nums = [100, 23, 56, 890, 567, 198, 230];console.log(nums);
参数中的最大值和最小值
function max() {// 定义变量,记录最大值,默认是第一个参数var res = arguments[0];// 循环遍历所以的参数for (var i = 1; i < arguments.length; i ++) {// 如果由参数比 res 大,修改 res 的值if (arguments[i] > res) {res = arguments[i];}}// 返回结果return res;
}
/*** 取所有参数中最小的值* @return number 参数中值最小的*/
function min() {// 定义变量,记录最大值,默认是第一个参数var res = arguments[0];// 循环遍历所以的参数for (var i = 1; i < arguments.length; i ++) {// 如果参数比 res 小,修改 res 的值if (arguments[i] < res) {res = arguments[i];}}// 返回结果return res;
}
console.log(max(123, 23423, 2342, 1231231, 1232,434, 4, 67));
console.log(min(123, 23423, 2342, 1231231, 1232,434, 4, 67));
递归函数-计算阶乘
// 定义函数,实现某个数字的阶乘
function fn(n) {// 如果 n 是小于等于 2if (n <= 2) {return n;}return n * fn(n - 1);
}console.log('8的阶乘:', fn(8));
console.log('10的阶乘:', fn(10));
console.log('3的阶乘:', fn(3));/*fn(4) 调用 执行 return 4 * fn(3)fn(3) 调用 return 3 * fn(2)fn(2) 调用 return 2fn(2) 调用结束fn(3) 调用结束 return 6;fn(4) 调用结束 return 24*/
递归函数-累加
//第一种方法:单向分支,先递归再满足条件
function fnc(n) {if (n <= 1) {return n;} return n + fnc(n-1);
}
console.log(fnc(100));// 第二种方法:满足条件,再递归
function fn(n){if (n > 1) {return n + fn(n -1);}return n;
}
console.log(fn(10));
JS-数组和函数冒泡排序递归函数相关推荐
- 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数
- JS 数组常用函数(数组合并、数组转字符串、顺序反转、范围选择、排序、插入数据、删除数据)
创建数组 var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2 ...
- golang 实现js 数组 indexOf函数 根据元素找到数组下标
在数组中找到一个元素的下标,找不到返回-1 在javascript中可以这样写: var a = ['a','b','c','d'] console.log(a.indexOf('c')) // 2 ...
- js list删除指定元素_删除js数组中的指定元素,有这两步就够了
js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单. 1.JS的数组对 ...
- js数组怎么删除指定元素?
js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单. 1.JS的数组对 ...
- shell函数与数组(了解函数,递归函数运用,了解数组,创建基数和偶数数组,冒泡排序,调试命令)
文章目录 shell函数 了解函数 函数定义 递归函数 举例子 shell数组 定义数组 数组包括的数据类型与数组操作 数组操作 举例(快速创建数组.奇数数组) 冒泡排序法 调试命令 set命令 ba ...
- JS的组成-JS数组方法-JS函数-系统化学习
JS Day01 什么是js的组成? ECMAScript(es) 其实就是js的规范(规则) DOM 文档对象模型 div span BOM 浏览器对象模型 JS的使用方式 行内样式的书写(不经常使 ...
- 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序
指针 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名 ...
- js判断数据类型(如数组)及数组操作函数
在ES5的时候,js数据类型有6种:Number.String.Boolean.undefined.object.Null. 注:https://blog.csdn.net/u013592575/ar ...
最新文章
- 30秒的PHP代码片段(2)数学 - Math
- 晕死!博客园把我搞晕了!
- python论坛哪些好-好的python论坛
- ios linux时间戳转时间,将UNIX时间戳转换为数据 – iOS
- FFmpeg流媒体处理-收流与推流
- Python 装饰器工作原理解析
- 有时候eclipse 导入maven项目 启动的时候回出现这样一个问题
- python asyncio 并发编程_asyncio并发编程
- java基础学习——14、代码格式
- 思维认知-读mindhacks杂记
- 网络安全系列-三十四: EDR、NDR、XDR 、HIPS、NIPS、NTA、DPI、DFI、南北流量、东西流量:傻傻分不清楚
- 基于js的火星坐标、百度坐标、WGS84坐标转换
- EXCEL VBA 实现翻译(简单对照)
- 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
- 戴尔高密度服务器性能指标,PowerEdge R630:1U机身下的2U性能
- 分享--操作系统学习
- 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
- Android OkHttp 源码解析 - 拦截器
- tomcat命名来源(歪批)
- 360图片搜索API