一.什么是数组
1.数组就是一系列有序数据的集合
2.也就是我们把一些数据放在一个盒子里面,按照顺序来排列好这个东西就是一个数组,储存着一些数据的集合

3.我们见得把所有数据类型分为两大类:
a.基本数据类型:(五大类)number/string/boolean/undefined/null
b.复杂数据类型:Object/Function/Array/......
二.如何创建一个数组
1.字面量创建一个数组

2.内置构造函数创建数组

下面展示一些 内联代码片。
// 以下是两种方法创建函数的案例
/*
1. 创建一个学生成绩数组,存储所有学生的数学成绩,分别是 89,78,90,99,67,59
*/
var scoreArray = [89, 78, 90, 99, 67, 59]
/*
2. 求所有学生中分数最高的学生成绩,打印输出到界面
分析: 最大值
假设第一个数是最大值max,
var max = scoreArray[0]
让后面的数依次与max比较,如果比较max大,则将值赋值给max, 所有数比较完之后,max中存储的为最大值
for(var i = 1; i< scoreArray.length; i++){
if(scoreArray[i] > max) {
max = scoreArray[i]
}
}
*/
function getMaxScore() {
var max = scoreArray[0] //假设第一个数是大值max
for (var i = 1; i < scoreArray.length; i++) {
var score = scoreArray[i]
if (score > max) {
max = score
}
}
console.log('最高分是 ', max)
}
// getMaxScore()
/*
3. 求所有学生中分数最低学生成绩,打印输出到界面
分析: 最小值
假设第一个数是最小值min,
var min = scoreArray[0]
让后面的数依次与min比较,如果比较min小,则将值赋值给min, 所有数比较完之后,min中存储的为最小值
*/
function getMinScore() {
var min = scoreArray[0]
for (var i = 1; i < scoreArray.length; i++) {
if (scoreArray[i] < min) {
min = scoreArray[i]
}
}
console.log('最低分是 ', min);
}
// getMinScore()
/*
4. 求不及格的学生有几个,打印输出到界面
分析: 计数器
var count = 0 如果满足条件 count++
[89, 78, 90, 99, 67, 59]
不及格学生,指的是成绩小于60分的
if(score < 60){
count++
}
*/
function getFailCount(){
var count = 0
for(var i = 0; i<scoreArray.length; i++){
var score = scoreArray[i] //获取成绩
if(score < 60){
count++
}
}
console.log('不及格人数是 ',count);
}
getFailCount()
三.数组的length和索引方法
1.数组的lenght
a.lenght就是长度的意思
b.表示数组的长度,数组里面有多少个成员,lenght就是多少
eg
下面展示一些 内联代码片。
// lenght的示例
var scroeArray =[80,90,59,99,75,62]
//函数里有80.90.59.99.75.62 6个数
scoreArray.length(6)
//那么length的数就是6
2数组的索引
a.索引也叫做下标,是指一个数据在数组里面排在第几个的位置
b.在所有的语言里面,索引都是从0开始的
c.数组里面的索引也是从0开始的

四.数组的遍历
1.什么叫遍历
因为数组索引可以获取数组中的内容,
索引又是按照0~n的顺序排列的
我们就可以for循环来循环数组for循环我们也可以设置为0~n
我们就把这个行为叫做遍历

五.数据类型之间存储的区别
1.存储空间分为两种:堆和栈


栈:主要存储基本数据类型的内容
堆:主要存储复杂数据类型的内容
2.数据类型之间的比较

基本数据类型是值之间的比较,复杂数据类型是 地址之间比较
下面展示一些 内联代码片。
// 数据之间的比较的案例
// 基本数据类型
var num1 = 100
var num2 = '100'
// console.log(num1 == num2) //true
// 复杂数据类型
var obj1 = {name:'jack',age:20}
var obj2 = {name:'jack',age:20}
// console.log(obj1);
// obj1.name = 'rose' //将obj1指向的对象name属性值更改为rose
// console.log(obj1);
// console.log(obj2);
var obj3 = obj2
obj3.name = 'lilei'
console.log(obj2);
// console.log(obj3 == obj2)
//复杂数据类型
var arr1 = [10,20,30]
var arr2 = [10,20,30]
console.log(arr1 == arr2)
六.函数参数传递
1.基本数据和复杂数据之间的区别

下面展示一些 内联代码片。
// 基本数据类型
var num1 = 100
var num2 = '100'
// console.log(num1 == num2) //true
// 复杂数据类型
var obj1 = {name:'jack',age:20}
var obj2 = {name:'jack',age:20}
// console.log(obj1);
// obj1.name = 'rose' //将obj1指向的对象name属性值更改为rose
// console.log(obj1);
// console.log(obj2);
var obj3 = obj2
obj3.name = 'lilei'
console.log(obj2);
// console.log(obj3 == obj2)
//复杂数据类型
var arr1 = [10,20,30]
var arr2 = [10,20,30]
console.log(arr1 == arr2)



七.数组的常用方法
1.push: 在数组的尾末追加一个元素

- pop:用来删除数组尾末的一个元素

3.unshift:在数组最前面添加一个元素

4.shift:删除数组最前面一个元素

5.splice:截取数组中的某些内容,按照数组的索引来截取


6.reverse:是用来翻转数组用的

7.sort 用来给数组排序的

8.concat是把多个数组进行拼接


9.join是吧数组里的每一项内容链接起来变成一个字符串

10.indexOf

下面展示一些 内联代码片。
案例
var scoreArray = [98, 78, 86, 59, 94]
// scoreArray.push(100)
console.log(scoreArray);
var count = 0
for (var i = 0; i < scoreArray.length; i++) {
//不及格成绩
if (scoreArray[i] < 60) {
count++
if (count == 1) {
scoreArray.splice(i, 1)
break;
}
}
}
scoreArray.sort()
console.log(scoreArray);
ES5常用数组遍历方法
1.forEach


2.map


3.filter


4.find

5.every

6.some

7.reduce


下面展示一些 内联代码片
var scoreArray = [98, 89, 90, 48, 88, 56, 78]
var sum = scoreArray.reduce(function(s,item,index){
return s + item
},0)
console.log('sum = ',sum);
//学生成绩数组是否全部合格,如果全部合格返回 true,否则false
// var isOk = true
// for(var i =0; i< scoreArray.length; i++){
// if(scoreArray[i] < 60){
// isOk = false
// break;
// }
// }
// isOk
// var isOk = scoreArray.every(function(item,index){
// return item > 60
// })
// console.log('isOk ',isOk);
// var isOk = scoreArray.some(function(item,index){
// return item < 60
// })
// console.log('isOk ',isOk);
// var arr = [1,2,3]
// arr.forEach(function(item,index,oldArr){
// console.log('item :',item, ' index :',index, ' oldArr',oldArr)
// })
// var scoreArray = [98, 89, 90, 48, 88, 56, 78]
// scoreArray.forEach(function(item){
// console.log(item);
// })
// var newArray = scoreArray.map(function(item){
// return item * 10 // [980, 890,900,880]
// })
// console.log(newArray);
// ['<h2>980</h2>', '<h2>890</h2>','<h2>900</h2>', '<h2>880</h2>']
// var newArray = scoreArray.map(function(item){
// return '<h2>'+ item * 10 +'</h2>' // ['<h2>980</h2>', '<h2>890</h2>','<h2>900</h2>', '<h2>880</h2>']
// })
// console.log(newArray);
// 找所有合格成绩,放到一个新数组中
// var newScore = scoreArray.filter(function (item, index) {
// return item > 60 //[98,89,90,88,78]
// })
// console.log(newScore);
//找第一个不合格分数
// var score = scoreArray.find(function (item, index) {
// return item < 60 //return返回的是满足条件的元素item
// })
// console.log(score)
本文详细介绍了JavaScript中的数组,包括数组的定义、创建方式、length属性、索引概念、遍历方法、数据类型存储差异、函数参数传递及数组的常用操作方法如push、pop、sort等,还探讨了ES5的数组遍历方法如forEach、map等。
3004

被折叠的 条评论
为什么被折叠?



