高程第六章
主要内容
对象:
- 对象的两种创建方法:
- 字面量创建
- new操作符和Object构造函数
- 对象的两种创建方法:
数组与定义数组
创建数组的方法:
使用Array函数:
let colors = new Array(20); //这里是创建了一个长度为20的数组 let colors = new Array("red", "blue", "green"); //这里是包含3个字符串的数组使用Array.from:Array.from() 的第一个参数是一个类数组对象,即任何可迭代的 结构,或者有一个 length 属性和可索引元素的结构。
1,// 字符串会被拆分为单字符数组 console.log(Array.from("Matt")); // ["M", "a", "t", "t"] 2,// Array.from()对现有数组执行浅复制 const a1 = [1, 2, 3, 4]; const a2 = Array.from(a1); console.log(a1); // [1, 2, 3, 4] alert(a1 === a2); // false 3,// arguments对象可以被轻松地转换为数组 function getArgsArray() { return Array.from(arguments); }console.log(getArgsArray(1, 2, 3, 4)); // [1, 2, 3, 4]
栈方法:
push() 方法接收任意数量的参数,并将它们添加到数组末尾,返回 数组的最新长度。
pop() 方法则用于删除数组的最后一项,同时减少数组的 length 值,返回被删除的项,
shift() ,它会删除数组的第一项并返回它,然后数组长度减1
unshift() 相反的操作:在数组开头添加任意多个值,然后返回新的数组长度
排序方法:
reverse() 方法就是将数组元素反向排列
sort() 会按照升序重新排列数组元素,即最小的值在 前面,最大的值在后面,但是会受影响,所以一般带上一个比较函数,
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } 这个比较函数可以适用于大多数数据类型,可以把它当作参数传给 sort() 方法,如下所示: let values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); // 0,1,5,10,15删除 splice() 传2个参数:要删除的第一个元素的位置和 要删除的元素数量。可以数组中删除任意多个元素,比如 splice(0, 2) 会删除前两个元素。
插入。需要给 splice() 传3个参数:开始位置、0(要删除的元素 数量)和要插入的元素,可以在数组中指定的位置插入元素。第三个 参数之后还可以传第四个、第五个参数,乃至任多个要插入的元 素。比如, splice(2, 0, "red", "green") 会从数组位置2开 始插入字符串 "red" 和 "green"
替换。 splice() 在删除元素的同时可以在指定位置插入新元素, 同样要传入3个参数:开始位置、要删除元素的数量和要插入的任意多个元素。要插入的元素数量不一定跟删除的元素数量一致。比如, splice(2, 1, "red", "green") 会在位置2删除一个元素,然 后从该位置开始向数组中插入 "red" 和 "green" 。
迭代方法
every() :对数组每一项都运行传入的函数,如果对每一项函数都 返回 true ,则这个方法返回 true 。
filter() :对数组每一项都运行传入的函数,函数返回 true 的
项会组成数组之后返回。
forEach() :对数组每一项都运行传入的函数,没有返回值。
map() :对数组每一项都运行传入的函数,返回由每次函数调用的
结果构成的数组。
some() :对数组每一项都运行传入的函数,如果有一项函数返回
true ,则这个方法返回 true 。
Map,WeakMap,Set,WeakSet
归并方法
reduce() 和 reduceRight() 。这两个方法都会迭代数组的所有项,并在此基础上 构建一个最终返回值。 reduce() 方法从数组第一项开始遍历到最后一 项。而 reduceRight() 从最后一项开始遍历至第一项。
Map,WeakMap,Set,WeakSet,这些类型为组织应用程序数据和简化内存管理提供了新能
力。,这是第4版的新东西,以后有时间研究
小结:
主要讲了对象和数组的创建方法,以及操作其中值的方法,非常非常重要,迭代方法和归并方法要单独做探究
本文使用 mdnice 排版