数组和函数

数组

计算数组中所有元素的和

 // 定义数组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-数组和函数冒泡排序递归函数相关推荐

  1. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年

    利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数

  2. JS 数组常用函数(数组合并、数组转字符串、顺序反转、范围选择、排序、插入数据、删除数据)

    创建数组 var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2 ...

  3. golang 实现js 数组 indexOf函数 根据元素找到数组下标

    在数组中找到一个元素的下标,找不到返回-1 在javascript中可以这样写: var a = ['a','b','c','d'] console.log(a.indexOf('c')) // 2 ...

  4. js list删除指定元素_删除js数组中的指定元素,有这两步就够了

    js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单. 1.JS的数组对 ...

  5. js数组怎么删除指定元素?

    js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,先定义一个函数来获取删除指定元素索引值,然后用js数组删除的方法,来删除指定元素即可,就两步不难,很简单. 1.JS的数组对 ...

  6. shell函数与数组(了解函数,递归函数运用,了解数组,创建基数和偶数数组,冒泡排序,调试命令)

    文章目录 shell函数 了解函数 函数定义 递归函数 举例子 shell数组 定义数组 数组包括的数据类型与数组操作 数组操作 举例(快速创建数组.奇数数组) 冒泡排序法 调试命令 set命令 ba ...

  7. JS的组成-JS数组方法-JS函数-系统化学习

    JS Day01 什么是js的组成? ECMAScript(es) 其实就是js的规范(规则) DOM 文档对象模型 div span BOM 浏览器对象模型 JS的使用方式 行内样式的书写(不经常使 ...

  8. 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序

    指针 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名 ...

  9. js判断数据类型(如数组)及数组操作函数

    在ES5的时候,js数据类型有6种:Number.String.Boolean.undefined.object.Null. 注:https://blog.csdn.net/u013592575/ar ...

最新文章

  1. 30秒的PHP代码片段(2)数学 - Math
  2. 晕死!博客园把我搞晕了!
  3. python论坛哪些好-好的python论坛
  4. ios linux时间戳转时间,将UNIX时间戳转换为数据 – iOS
  5. FFmpeg流媒体处理-收流与推流
  6. Python 装饰器工作原理解析
  7. 有时候eclipse 导入maven项目 启动的时候回出现这样一个问题
  8. python asyncio 并发编程_asyncio并发编程
  9. java基础学习——14、代码格式
  10. 思维认知-读mindhacks杂记
  11. 网络安全系列-三十四: EDR、NDR、XDR 、HIPS、NIPS、NTA、DPI、DFI、南北流量、东西流量:傻傻分不清楚
  12. 基于js的火星坐标、百度坐标、WGS84坐标转换
  13. EXCEL VBA 实现翻译(简单对照)
  14. 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机
  15. 戴尔高密度服务器性能指标,PowerEdge R630:1U机身下的2U性能
  16. 分享--操作系统学习
  17. 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
  18. Android OkHttp 源码解析 - 拦截器
  19. tomcat命名来源(歪批)
  20. 360图片搜索API

热门文章

  1. go 链路追踪_Go技术日报(20200911)
  2. Python ID 生成(UUID、自增、19位雪花算法ID)
  3. OpenCV-Mat笔记
  4. 信安精品课:第7章访问控制技术原理与应用精讲笔记
  5. Java基础---认识IO流---字节流、字符流---缓冲流---转换流
  6. java jar包与配置文件的写法
  7. 2013年7月新日本語能力試験N3文字部分
  8. CMake with WinMinGW
  9. BDD敏捷开发入门与实战
  10. U-LINK2 升级后低版本不识别问题