~~~
/*
* 数组中常用的内置方法:基于这些方法可以让我们有效的对数组进行操作
* console.dir(Array.prototype)
* https://developer.mozilla.org/zh-CN/
*
* 1.关于数组的增删改
* + push
* + pop
* + shift
* + unshift
* + splice
* 2.关于数组查询和拼接
* + slice
* + concat
* 3.转换为字符串
* + toString
* + join
* 4.验证是否包含某一项的
* + indexOf / lastIndexOf
* + includes
* 5.关于排序的
* + reverse
* + sort
* 6.关于数组迭代的方法
* + forEach
* + map
*
* 记忆的方式:
* 1.方法的意义和作用
* 2.参数(执行方法的时候传递的内容)
* 3.返回值(执行完方法返回的结果)
* 4.原始数组是否改变
*/
// let arr = [10, 20, 30];
/*
* push:向数组末尾追加元素
* @params:
* 参数个数不固定,类型也不固定,都是向数组末尾依次追加的内容
* @return:
* [NUMBER]新增后数组的长度
* 原始数据改变
*
* 基于对象键值对操作:arr[arr.length]=xxx
*/
// let result = arr.push(40, '珠峰培训');
// console.log(result); //=>5
/*
* pop:删除数组最后一项
* @params:无
* @return:
* 被删除的那一项内容
* 原始数组改变
*
* arr.length-- 删除最后一项
*/
// let result = arr.pop();
/*
* unshift:向数组开始位置新增内容
* @params:
* 个数不定、类型不定,都是要依次新增的内容
* @return:
* [NUMBER]新增后数组的长度
* 原始数据改变
*/
// let result = arr.unshift(0, '珠峰培训');
/*
* shift:删除数组第一项
* @params:无
* @return:
* 被删除的那一项内容
* 原始数组改变
*/
// let result = arr.shift();
/*
* splice:实现数组指定位置的增删改
* arr.splice(n,m):从数组索引n开始,删除m个元素,返回结果是以新数组的方式,把删除的内容进行存储(m不写就是删除到末尾)
* arr.splice(n,m,x1,x2...):从索引n开始,删除m个元素,用x1(或者更多的值)替换删除的内容,返回结果是一个数组,存储删除的内容
* arr.splice(n,0,x1,x2...):从索引n开始,一个都不删除(返回结果是空数组),把x1或者更多值“插入到索引n的前面”
* 原始数组都会改变
*/
// let arr = [10, 20, 30, 40, 50, 60, 70];
// ===新增(一个都不删)
// let result = arr.splice(2, 0, 100, 200, 300);
// console.log(result, arr); //=>result=[] arr=[10, 20,100,200,300 ,30, 40, 50, 60, 70]
// ===修改(删除掉一部分,然后用一些值替换即可)
// let result = arr.splice(2, 2, '珠峰培训', '周啸天');
// console.log(result, arr); //=>result=[30,40] arr=[10, 20, '珠峰培训','周啸天', 50, 60, 70]
// ===删除
// let result = arr.splice(2, 3);
// console.log(result, arr); //=>result=[30,40,50] arr=[10,20,60,70]
// let result = arr.splice(0); //=>从索引零开始,删除到末尾(清空原来数组,把原来数组中的每一项都存放到新数组RESULT中)
// console.log(result, arr); //=>result=[10, 20, 30, 40, 50, 60, 70] arr=[]
// 需求:删除数组末尾这一项,你有几种办法
// let arr = [10, 20, 30, 40, 50, 60, 70];
// arr.length--;
// arr.pop(); //=>返回结果70
// arr.splice(arr.length - 1); //=>从最后一项开始,删除到末尾(删除一个) 返回结果[70]
// delete arr[arr.length - 1]; //=>虽然可以删除,但是LENGTH长度不变(一般不用)
// ...
// 需求:向数组末尾追加‘珠峰’
// let arr = [10, 20, 30, 40, 50, 60, 70];
// arr.push('珠峰');
// arr[arr.length] = '珠峰';
// arr.splice(arr.length, 0, '珠峰');
~~~
- 0001.开课说明
- 0002.ECMAScript的发展历程
- 0003.WEB2.0时代-服务器端渲染,前后端不分离
- 0004.WEB2.0时代-前后端分离模式
- 0005.大前端时代概述
- 0006.前端需要的技术栈和学习技巧
- 0007.浏览器
- 0008.JS的三部分组成
- 0009.JS中创建变量的6种形式
- 0010.JS中变量的命名规范
- 0011.JS中的数据类型分类
- 0012.JS中常用的几种输出方式
- 0013.number属性类型详细解读1
- 0014.number数据类型详细解读2
- 0015.string数据类型详细解读1
- 0016.string数据类型详细解读2
- 0017.boolean数据类型详细解读
- 0018.object数据类型详细解读1
- 0019.object数据类型详细解读2
- 0020.谈谈学习
- 0021.数据类型检测
- 0022.浏览器底层渲染机制(堆栈内存和数据类型区别)
- 0023.关于数据类型区别的面试题
- 0024.课后作业讲解:数据类型转换
- 0025.课后作业讲解:堆栈内存处理
- 0026.课后作业讲解:阿里的一道经典面试题
- 0027.JS中三种常用的判断语句
- 0028.小实战:开关灯特效
- 0029.FOR循环和FOR IN循环
- 0030.课后作业讲解:关于循环判断和数据转化
- 0031.课后作业讲解:关于DOM对象的深入理解
- 0032.关于元素集合的相关操作(奇偶行变色)
- 0033.课后作业讲解:逻辑思维判断题
- reset.min.css
- 0034.(复习)前四天内容的综合复习梳理
- 0035.初窥函数:函数的作用、语法、形参
- 0036-0038.选项卡案例
- 0039.隔行变色案例:进一步强化自定义属性编程思想
- 0040.其它作业题的讲解(自定义属性强化)
- 0041.函数创建和执行的堆栈运行机制
- 0042.函数中的形参和实参
- 0043.函数中的实参集合ARGUMENTS
- 0044.函数中的返回值RETURN
- 0045.箭头函数和匿名函数
- 0046.两个等于比较时候的数据类型转换规则
- 0047.数组的基础结构和常规操作
- 0048.数组常用方法:增删改的五个方法
- 0049.数组常用方法:查询、拼接、转换为字符串
- 0050.数组常用方法:检测是否包含、排序和迭代
- 0051.数组去重:双FOR循环(数组塌陷和SPLICE删除优化)
- 0052.数组去重:对象键值对方式(ES6中SET)
- 0053.Math数学函数对象中常用的方法
- 0054.String字符串中常用的方法
- 0055.实战案例:时间字符串格式化
- 0056.实战案例:queryURLParams1
- 0057.实战案例:queryURLParams2
- 0058.实战案例:获取四位不重复的验证码
- 0059.阶段作业题讲解1(基础知识)
- 0060.阶段作业题讲解2(实战案例)
- 0061-0062.DOM操作中相关知识的复习
- 0063.DOM中的节点操作1
- 0064.DOM中的节点操作2
- utils
- 65.关于DOM的增删改