JavaScript—基础Day3

一、for循环

1. for无限循环

for( ; ;)与while(true)一样,构造无限循环

2. for和while的区别:

  • 当如果明确循环次数的时候推荐使用for循环
  • 不明确循环次数的时候推荐使用while循环

二、数组

1. 数组定义

数组:一种可以按顺序保存数据的数据类型

2. 遍历数组

1. for循环
for(let i=0;i<数组名.length;i++){数组名[i]
}
2. forEach循环
arr.forEach((正在遍历的对象value,正在遍历的对象的索引index,正在遍历的数组array)=>{//缺点:无法中途跳出forEach循环,break命令或return命令都不能奏效。// forEach接收一个回调函数作为参数。item是每个元素,index元素在数组中的下标,arr数组本身。没有返回值!
})
3. map循环
   var brr= arr.map((item,index,arr)=>{//代码 map是有返回值的。他的返回值是一个新数组return item * 2;})
4. for-of循环
   for(var item of arr){//代码}
5. filter
   var arr = [{name:'张三',age:'20'},{name:'李四',age:"50"}]arr.filter(item=>{return item.name;//返回值是 arr本身,所以元素的name都为true})arr.filter(item=>{return item.age>30;//[{name:"李四",age:"50"}]})//接受一个回调函数作为参数,返回值是一个新数组
6. every循环
 // every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。(全部符合条件)var arr=[50,6,70,80];arr.every((item,index,arr)=>{return item > 50; //每一项数据都要大于50})//false
7. some循环
// some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。(只要有一个符合)var arr=[50,6,70,80];arr.some((item,index,arr)=>{return item > 50; //只要有一项数据都要大于50})//true
8. find循环
 // find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined var stu = [{name: '张三',gender: '男',age: 20},{name: '王小毛',gender: '男',age: 20},{name: '李四',gender: '男',age: 20}
]function getStu(element){return element.name == '李四'}stu.find(getStu)//返回结果为//{name: "李四", gender: "男", age: 20}

3. 增加数组新的元素

第一种:push()

  1. 尾部添加一个或多个元素(用逗号隔开)
  2. 会改变原数组的长度
  3. 也可以添加对象

第二种:unshift()

  1. 头部添加一个或多个元素(用逗号隔开)
  2. 会改变原数组的长度
  3. 也可以添加对象

第三种:splice(参数1,参数2,参数3)

splice(索引位置,删除元素的个数,要添加的元素)

let arr=[1,2,3,4]
arr.splice(4,0,'red')
console.log('arr',arr) //[1,2,3,4,'red']

第四种:arr.length

let arr=[1,2,3,4,5];
arr[arr.length]=6
console.log("arr", arr); //[1,2,3,4,6]

第五种:concat()方法

let arr = [1, 2, 3, 4];
arr = arr.concat(5,6,7); /*添加多个元素*/
console.log("arr", arr);//[1,2,3,4]
let arr = [1, 2, 3, 4];
let newArr = arr.concat([10,20]); /*添加数组*/
console.log("newArr", newArr);//[1,2,3,4,10,20]
console.log("arr", arr);//[1,2,3,4]

第六种:使用展开运算符 […[],50,60],返回新数组,不会改变原数组

let arr = [1, 2, 3, 4];
let newArr = [...arr,50,60];
console.log("newArr", newArr);//[1,2,3,4,50,60]
console.log("arr", arr);//[1,2,3,4]

4. 删除数组元素

第一种:arr.length

let arr=[1,2,3,4,5];
arr.length=4
console.log( arr); //[1,2,3,4]

第二种:pop() 栈方法

let arr = ['red', 'blue', 'pink'];
arr.pop() // 返回删除的最后一个元素
console.log(arr);  // ['red', 'blue']

第三种:shift() 队列方法

let arr = ['red', 'blue', 'pink'];
arr.shift() // 返回删除的第一个元素
console.log(arr); // ['blue', 'pink']

第四种:splice 操作方法

let arr = ['red', 'blue', 'pink'];
arr.splice(0, 2) // splice(索引位置,删除元素的个数)
console.log(arr); // ['pink']

5. 冒泡排序

6. 数组经典案例

1. 三角形
// 正三角形
for (let i = 0; i < 5; i++) {for (let j = 0; j <= i; j++) {document.write('*')}document.write('<br>')
}// 倒三角形
for (let i = 0; i < 5; i++) {for (let j = 5; j > i; j--) {document.write('*')}document.write('<br>')
}
2. 金字塔

for (let i = 0; i < 5; i++) {for (let ij = 4; ij > i; ij--) {document.write('&nbsp;&nbsp;')// document.write('#')}for (let j = 1; j <= 2 * i - 1; j++) {document.write('*')}document.write('<br>')}

 for (let i = 0; i < 5; i++) {for (let ij = 0; ij < i; ij++) {document.write('&nbsp;&nbsp;')// document.write('#')}for (let j = 5; j >= 2 * i - 1; j--) {document.write('*')}document.write('<br>')
}
3. 九九乘法表
let res = 0;for (let a = 1; a <= 9; a++) {for (let b = 1; b <= a; b++) {res = a * b;document.write(`<span>${b}*${a}=${res}</span>`)}document.write('<br>');
}
 span {display: inline-block;width: 125px;height: 30px;border: 1px solid #000;text-align: center;line-height: 30px;}
4. 大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,如何分配?
let num = 0;for (let x = 1; x < 50; x++) {for (let y = 1; y < 100; y++) {for (let z = 1; z < 200; z++) {if (x + y + z == 100 && 2 * x + y + 1 / 2 * z == 100) {num++document.write(`大马: ${x} &nbsp;中马: ${y} &nbsp;小马: ${z}<br>`)}}}}
document.write(`一共有${num}种情况`)
5. 小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
for (let x = 0 ; x <= 100 ; x++) {for (let y = 0 ; y <= 100 ; y++) {for (let z = 0 ; z <= 100 ; z++) {if (15 * x + 5 * y + 2 * z == 100) {document.write(`洗发水: ${x}&nbsp;香皂: ${y}&nbsp;牙刷: ${z}&nbsp;<br>`)}}}
}

JavaScript—基础Day3相关推荐

  1. JavaScript基础笔记集合(转)

    JavaScript基础笔记集合 JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在< ...

  2. javascript基础语法——表达式

    前面的话 一般地,关于javascript基础语法,人们听得比较多的术语是操作符和语句.但是,其实还有一个术语经常使用,却很少被提到,这就是javascript表达式(expression).本文将详 ...

  3. Javascript基础与面向对象基础~第四讲 Javascript中的类对象

    今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一 ...

  4. javascript基础系列(入门前须知)

    -----------------------小历史---------------------------- javascript与java是两种语言,他们的创作公司不同,JavaScript当时是借 ...

  5. JavaScript基础系列---闭包及其应用

    闭包(closure)是JavaScript中一个"神秘"的概念,许多人都对它难以理解,我也一直处于似懂非懂的状态,前几天深入了解了一下执行环境以及作用域链,可戳查看详情,而闭包与 ...

  6. 夯实JavaScript基础之prototype, __proto__, instanceof

    function New(f){return function(){var o = {'__proto__': f.prototype};f.apply(o, arguments);return o; ...

  7. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  8. JavaScript基础一

    1.1 javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) J ...

  9. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

最新文章

  1. 将NumPy数组转储到csv文件中
  2. 菠萝派php示例,菠萝派 - 美食杰 - 美食,菜谱 - 中国最全的家常菜谱美食网
  3. My1stServlet
  4. hash算法的介绍 【清晰易懂】
  5. 制造领域的人工智能技术
  6. 微信小程序6 - 页面之间传参及通知系统封装
  7. 前端学习(1271):async/await处理多个异步请求
  8. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析 1
  9. centos7 python3安装numpy_centos下pip3安装numpy
  10. Python 实现的下载op海贼王网的图片(网络爬虫)
  11. JavaScript正则表达式之分组匹配 / 反向引用
  12. Python 好玩代码
  13. UE4(虚幻4) 教学网站等资源推荐
  14. 先学python还是r-r语言和python学哪个?
  15. 乔布斯的创新故事_创新工作的真实故事
  16. selenium: 网页打开最大化
  17. 第七周 项目四-队列数组
  18. vue项目的简体繁体切换
  19. h5 苹果IOS端 播放mp3 没声音
  20. Linux下2D、3D的测试软件glxgears

热门文章

  1. 解题报告 逃跑未遂
  2. 【题解】【AcWing】1533. 1 的个数
  3. FFmpeg---cmd命令操作汇总
  4. 牛客练习赛13-B,幸运数字2
  5. python图片隐写_Python3 图片隐写术的实现
  6. 银行业云计算发展论坛圆满落幕
  7. 原生Android缩略图填满SD卡的问题
  8. java中的类和对象(重点)超详细
  9. 金山卫士2.6.3 开源代码整理
  10. 油耳适合带什么耳机?不入耳的骨传导耳机最合适