44引用类型的值(对象)是引用类型的一个实例。引用类型是一种数据结构,用于将数据和功能组织在一起。
55ECMAScript 提供了很多原生引用类型。
66
7+
8+ ## 目录
9+
10+ JavaScript 引用数据类型
11+
12+ - 1、Object类型
13+ - 1.1、创建对象的方式
14+ - 1.2、读取对象属性
15+ - 2、Array类型
16+ - 2.1、创建方式
17+ - 2.2、读取方式
18+ - 2.3、检测数组
19+ - 2.4、转换方法
20+ - 2.5、栈方法
21+ - 2.6、队列方法
22+ - 2.7、栈、队列小结
23+ - 1 . 栈的使用
24+ - 2 . 队列的使用
25+ - 2.7、重排序方法
26+ - 2.8、操作方法
27+ - 1 . concat() 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
28+ - 2 . slice() 返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。
29+ - 3 . splice() 通过删除现有元素和/或添加新元素来更改一个数组的内容。
30+ - 2.9、位置方法
31+ - 1 . indexOf()、lastIndexOf() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。indexOf() 从数组开头向后查找, lastIndexOf() 从数组末尾开始向前查找。
32+ - 2 . 使用场景
33+ - 2.10、迭代方法
34+
35+
36+
37+
38+
39+
740## 1、Object类型
841
942
@@ -54,11 +87,11 @@ person["first name"] = "wjh"
5487
5588
5689
57- ### 2、Array类型
90+ ## 2、Array类型
5891
5992
6093
61- ### 2.1、数组创建方式
94+ ### 2.1、创建方式
6295
6396``` javascript
6497// 1、使用构造函数:
@@ -82,7 +115,7 @@ var values = [1, 2, ]; // 不推荐这样用,这样会创
82115
83116
84117
85- ### 2.2、数组读取方式
118+ ### 2.2、读取方式
86119
87120使用索引读取
88121
@@ -127,7 +160,7 @@ if(Array.isArray(value)){
127160
128161
129162
130- ### 2.4、数组转换方法
163+ ### 2.4、转换方法
131164
132165所有对象都具有 toLocaleString()、toString() 和 valueOf() 方法。
133166
@@ -181,7 +214,7 @@ alert(persons.toLocaleString()); // 1 => toLocaleString ,2 => toLocaleStr
181214
182215
183216
184- ### 2.5、数组栈方法
217+ ### 2.5、栈方法
185218
186219什么是栈?
187220
@@ -205,7 +238,7 @@ console.log(person)
205238
206239
207240
208- ### 2.6、数组队列方法
241+ ### 2.6、队列方法
209242
210243什么是队列?
211244- 队列是一种 ** FIFO(First-In-First-Out 先进先出)** 的数据结构。
@@ -230,7 +263,7 @@ console.log(person) // 移除后的数组 [ 'D
230263
231264### 2.7、栈、队列小结:
232265
233- #### 栈的使用
266+ #### 1. 栈的使用
234267
235268正向栈使用:push() pop() 从尾部进一个,再从尾部出一个
236269
@@ -239,7 +272,7 @@ console.log(person) // 移除后的数组 [ 'D
239272![ 队列图示] ( ./img/005-stack.png )
240273
241274
242- #### 队列的使用
275+ #### 2. 队列的使用
243276
244277正向队列使用:push() shift() 从尾部先进一个,再从头部出去一个
245278
@@ -300,7 +333,7 @@ function compare(val1, val2) {
300333
301334
302335
303- ### 2.8 数组操作方法
336+ ### 2.8、操作方法
304337
305338#### 1. concat() 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
306339
@@ -366,14 +399,14 @@ console.log(result3); // 返回值:[ 'Siri' ]
366399
367400上述示例演示可以看到:splice 方法会改变原数组内容;并且可实现 增、删、改操作(改操作实质就是:删除后增加)。
368401
369- splice 的返回值也可以从上面示例看到,如果有删除元素就会返回一个数组,包含从原始数组中删除的项(没有删除就反悔一个空数组 )。
402+ splice 的返回值也可以从上面示例看到,如果有删除元素就会返回一个数组,包含从原始数组中删除的项(没有删除就返回一个空数组 )。
370403
371404
372- ### 2.9 位置方法
405+ ### 2.9、 位置方法
373406
374407数组位置方法有两个: indexOf() 和 lastIndexOf()。
375408
376- #### ` indexOf() ` 、` lastIndexOf() ` 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。` indexOf() ` 从数组开头向后查找, ` lastIndexOf() ` 从数组末尾开始向前查找。
409+ #### 1. ` indexOf() ` 、` lastIndexOf() ` 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。` indexOf() ` 从数组开头向后查找, ` lastIndexOf() ` 从数组末尾开始向前查找。
377410
378411两个参数分别指定:要查找的元素、开始查找的位置。
379412
@@ -387,9 +420,9 @@ array.indexOf(2, -3); // 0
387420
388421```
389422
390- #### 使用场景
423+ #### 2. 使用场景
391424
392- 1 . 找出指定元素出现的所有位置
425+ 1、 找出指定元素出现的所有位置
393426
394427``` javascript
395428var indices = [];
@@ -407,7 +440,7 @@ while (idx != -1) {
407440console .log (indices); // [ 1, 3, 5 ]
408441```
409442
410- 2 . 判断一个元素是否在数组里,不在则更新数组
443+ 2、 判断一个元素是否在数组里,不在则更新数组
411444
412445``` javascript
413446function updateBrandCollection (brands , brand ) {
@@ -427,13 +460,58 @@ updateBrandCollection(brands, '苹果'); // 苹果 已经存在于品牌集
427460```
428461
429462
463+ ### 2.10、迭代方法
430464
465+ - every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true, 则返回 true。
466+ - some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
467+ - filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
431468
469+ - forEach():对数组中的每一项运行给定函数,没有返回值。
470+ - map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
432471
433472
434473
474+ ``` javascript
475+ var numbers = [1 , 2 , 3 , 4 , 5 , 4 , 3 , 2 , 1 ];
476+
477+ /**
478+ * 待传入的 给定的运行函数
479+ * 此函数接收三个参数
480+ * @param item 数据项的值
481+ * @param index 该项在数组中的位置
482+ * @param array 数组对象本身
483+ * @return 返回值根据使用外部函数不同,影响不同
484+ */
485+ function givenFunc (item , index , array ) {
486+ return item > 2 ;
487+ }
488+
489+ /**
490+ * every 顾名思义,必须每一项都满足 给定函数 才返回true,否则返回 false。可以类比 运算符:"&"
491+ * @type {boolean}
492+ */
493+ var everyResult = numbers .every (givenFunc)
494+ console .log (everyResult) // false
495+
435496
497+ /**
498+ * some 只要有一项 返回true,就返回true。 可以类比 运算符:"|"
499+ * @type {boolean}
500+ */
501+ var someResult = numbers .some (givenFunc)
502+ console .log (someResult) // true
503+
504+
505+ /**
506+ * filter 就是过滤 按照给定函数过滤,满足条件就加入返回结果数组,最后返回满足条件的所有项组成的数组
507+ * @type {Array.<number>}
508+ */
509+ var filterResult = numbers .filter (givenFunc)
510+ console .log (filterResult) // [ 3, 4, 5, 4, 3 ]
511+
512+ ```
436513
514+ 以上示例演示了:every、some、filter 三个方法的使用,这三个方法主要通过给定函数判断数组每一项是否符合我们的条件
437515
438516
439517
0 commit comments