练习1:求数组中所有元素的和

    var arr1 = [10, 20, 30, 40, 50];
var sum = 0;
for (var i = 0; i < arr1.length; i++) {
sum += arr1[i];
}
console.log(sum);

练习2:求数组中所有元素的平均值

    var arr2 = [1, 2, 3, 4, 5];
var sum2 = 0;
for (var i = 0; i < arr2.length; i++) {
sum2 += arr2[i];
}
console.log(sum2 / arr2.length);

练习3:求数组中所有元素中的最大值

      var arr3 = [1, 9, 3, 10, 3330, 32];
var max = arr3[0];
for (var i = 0; i < arr3.length; i++) {
if (max < arr3[i]) {
max = arr3[i];
}
}
console.log("最大值:" + max);

但有bug:

         var arr3=[-1,-2,-3];
//假设max变量中存储的是最大值
var max=0;
for(var i=0;i<arr3.length;i++){
//判断这个变量的值和数组中每个元素的值是不是最大值
if(max<arr3[i]){
max=arr3[i];
}
}
console.log("最大值:"+max);

练习4:求数组中所有元素的最小值

      var arr4 = [100, 10, 20, 30, 40, 50];
var min = arr4[0]; //假设min里存储的就是最小值
for (var i = 0; i < arr4.length; i++) {
if (min > arr4[i]) {
min = arr4[i];
}
}
console.log("最小值:" + min);

练习5:倒序遍历数组

      var arr5 = [10, 20, 30, 40, 50, 100];
// 正序
for (var i = 0; i < arr5.length; i++) {
console.log(arr5[i]);
}
//倒序
for (var i = arr5.length - 1; i >= 0; i--) {
console.log(arr5[i]);
}

练习6:把数组中每个元素用|拼接到一起产生一个字符串并输出

法1:

      var names = ["卡卡西", "佐助", "鸣人", "大蛇丸", "仓木麻衣"];
var str = ""; //空的字符串
for (var i = 0; i < names.length - 1; i++) {
str += names[i] + "|";
}
console.log(str + names[names.length - 1]);

法2:

      var names = ["卡卡西", "佐助", "鸣人", "大蛇丸", "仓木麻衣"];
var str = "";
for (var i = 1; i < names.length; i++) {
str += "|" + names[i];
}
console.log(names[0] + str);

练习7:去掉数组中重复的0,把其他的数据放在一个新的数组中

      var arr = [10, 0, 20, 0, 30, 0, 50];
var newArr = []; //新数组,用来存放第一个数组中所有非0的数字
for (var i = 0; i < arr.length; i++) {
if (arr[i] != 0) {
newArr[newArr.length] = arr[i];
}
}
//把新数组的长度作为下标使用,数组的长度是可以改变的
console.log(newArr);

练习8:反转数组---把数组中的数据的位置调换

ps:var array = [10, 20, 30, 40, 50];

10和50交换位置,20和40交换位置。

则可知:

1. 循环次数,计数器,根据交换几次来决定,不论奇数或偶数个数据,交换次数都是数据长度的一半。即:i<array.length/2

2. 第一个和最后最后一个交换位置,引入第三方变量。则第一个放到第三方里,最后一个放到第一个里,最后一个放第三方

         var array = [10, 20, 30, 40, 50];
//循环的目的是控制交换的次数
for (var i = 0; i < array.length / 2; i++) {
//先把第一个元素的值放在第三方变量中
var temp = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = temp;
}
console.log(array);

练习9:提示用户输入班级人数,求总成绩,平均值,最高分,最低分---扩展

      var perCount = parseInt(prompt("请输入班级人数"));
//定义数组存储班级的每个人的成绩
var perScores = [];
//循环的方式录入每个人的成绩
for (var i = 0; i < perCount; i++) {
//把每个人的成绩存储到数组中
perScores[perScores.length] = parseInt(
prompt("请输入第" + (i + 1) + "的个人成绩:")
);
}
console.log(perScores); //求总成绩
var sum = 0;
var avg = 0; //平均值
var max = perScores[0]; //最大值
var min = perScores[0]; //最小值
for (var i = 0; i < perScores.length; i++) {
sum += perScores[i]; //求和
//求最大值
if (max < perScores[i]) {
max = perScores[i];
//求最小值
if (min > perScores[i]) {
min = perScores[i];
}
}
}
//平均值
avg = sum / perScores.length;
console.log("和为:" + sum);
console.log("平均值为:" + avg);
console.log("最大值:" + max);
console.log("最小值:" + min);

JS基础语法---数组案例---9个练习的更多相关文章

  1. JS基础语法---数组

    数组: 一组有序的数据 数组的作用: 可以一次性存储多个数据 数组的定义: 1. 通过构造函数创建数组   语法: var 数组名=new Array(); var array=new Array() ...

  2. JS基础语法---数组基础知识总结

     数组: 存储一组有序的数据  数组的作用: 一次性存储多个数据 数组的定义方式: 1.构造函数定义数组: var 数组名=new Array(); 2.字面量方式定义数组: var 数组名=[]; ...

  3. JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)

    第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品 ...

  4. 【JS基础语法】---学习roadmap---6 parts

    JS基础语法---roadmap Part 1 - 2: Part 3 - 4:   Part 5 - 6

  5. JS基础语法(二)

    目录 JavaScript基础语法(二) 八. 函数 1. 函数的概念 2. 函数的使用 声明函数 调用函数 3. 函数的封装 4. 函数的参数 函数的参数匹配问题 5. 函数返回值 6. argum ...

  6. JavaScript01 js基础语法,数据类型

    JavaScript的概述: 1.组成 三部分组成 ecmaScript 基础语法 (es5) dom document object model 文档对象模型 (操作html文档内容) bom bo ...

  7. 9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点

    css3拓展: <display:none>  将某个元素隐藏       <visibility:hidden>  也是将某个元素隐藏 <display:block&g ...

  8. JS基础-语法+流程控制语句+函数+内置对象【数组】

    JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使 ...

  9. JS基础语法---Math对象的案例

    系统Max求最大值: var result= Math.max(10,20,30,40); console.log(result); 练习1:自己定义一个对象,实现系统的max的方法   //例子:自 ...

随机推荐

  1. SpringCloud微服务(05):Zuul组件,实现路由网关控制

    本文源码:GitHub·点这里 || GitEE·点这里 一.Zuul组件简介 1.基础概念 Zuul 网关主要提供动态路由,监控,弹性,安全管控等功能.在分布式的微服务系统中,系统被拆为了多个微服务 ...

  2. css 揭秘-读书笔记

    css 揭秘 [希]Lea verou 著 css 魔法 译 该书涵盖7大主题,47个css技巧,是css进阶必备书籍,开阔思路,探寻更优雅的解决方案.这本书完全用css渲染出的html写成的(布局. ...

  3. Winform中自定义添加ZedGraph右键实现设置所有Y轴刻度的上下限

    场景 Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  4. LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

    LayUi框架中树形组件tree官方还在持续完善中,目前最新版本为v2.5.5 官方树形组件目前还不支持懒加载方式,之前我修改一版是通过reload重载实例方法填充子节点数据方式,因为递归页面元素时存 ...

  5. Vue Cli3 中别名的配置问题

    Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...

  6. ios11下适配UItableView

    参考链接: https://www.cnblogs.com/spider-pei/p/7592906.html

  7. 关于discuz的fap.php 漏洞问题

    discuz后台SQL注入漏洞 discuz的/faq.php的$action == 'grouppermission'处理逻辑中,对$gids未进行初始化,黑客可通过构造特殊HTTP请求借助变量覆盖 ...

  8. & 和 && 的区别,与(&)运算符、位移运算符(<< 、>>、>>>)的含义及使用(Java示例)

    & 和 && 的区别,与(&)运算符.位移运算符(<< .>>.>>>)的含义及使用(Java示例) 1. & 和 & ...

  9. Prometheus Grafana快速搭建

    Prometheus Prometheus和Grafana组合基本上是监控系统的标配.Prometheus做存储后端,Grafana做分析及可视化界面. 普罗米修斯是开源的系统监控/报警工具库,功能非 ...

  10. linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux

    tc 是linux 内置的命令:使用man pages 查看 我们看到,其功能为 show / manipulate traffic control settings,可对操作系统进行流量控制: ne ...