JavaScript 数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<script type="text/javascript">
// 立即执行函数
(function () {
// 严格模式
"use strict";
var arr = [1, 3, 5, 3, 21, 5];

if (typeof (arr)) {
console.log('此数据类型为对象');
// 检测数组 isArray返回 true or false
if (Array.isArray(arr)) {
console.log('此对象为数组对象');
// 数组的转化
console.log(arr.toString());

var list = new Array();

// 栈方法:LIFO(后进先出)
list.push('张三', '李四', '王五');
console.log(list);
console.log(list.pop());
console.log(list);

// 队列方法:FIFO(先进先出)
list.unshift('陈六', '赵七');
console.log(list);
console.log(list.shift());
console.log(list);

// 数组重排
list.reverse();
console.log(list);
// 升序排序
list.sort();
console.log(list);

// 操作方法
console.log(list.concat('钱八', ['豆豆', '豆花']));
console.log(list.slice(1, 4));

console.log(list);
// 删除
console.log(list.splice(0, 1));
console.log(list);
// 插入
console.log(list.splice(0, 0, '花花', '毛毛'));
console.log(list);
// 替换
console.log(list.splice(2, 1, '二狗子', '铁头'));
console.log(list);

// 位置方法
console.log(list.indexOf("二狗子"));
console.log(list.lastIndexOf("铁头"));

// 迭代方法
// every() 对数组中的每一项给定函数,若该函数都返回true,则返回true
console.log(list.every(function (item, index, arry) {
return typeof (item) === 'string';
}));

/**************************/
list.push(1, 4, 5, 7, 21, 100);
console.log(list);
/**************************/

// some() 对数组中的每一项给定函数,若该函数有一项返回true,则返回true
console.log(list.some(function (item, index, arry) {
return typeof (item) === 'string';
}));

// filter() 对数组中的每一项给定函数,返回该函数返回true的项组成新的数组
console.log(list.filter(function (item, index, arry) {
return item === '二狗子';
}));

// forEach() 对数组中的每一项给定函数。这个方法没有返回值
console.log(list.forEach(function (item, index, arry) {
console.log(item);
}));

// map() 对数组中的每一项给定函数,返回每次函数调用的结果组成的数组
console.log(list.map(function (item, index, arry) {
return item > 0;
}));

// 缩小方法
// reduce() 从第一项向后叠加
console.log(list.reduce(function (prev, cur, index, array) {
return prev + cur;
}))

// reduceRight 从最后一项向第一项叠加
console.log(list.reduceRight(function (prev, cur, index, array) {
return prev + cur;
}))
}
} else {
// console.log(typeof(arr))
console.log('数据类型非数组');
}
// 数据基本类型:null undefined number string object boolean
// 从这里我们可以看出typeof验证数据的返回类型:undefined、boolean、string、number、object、function
})();
</script>