今日知识点:
1、 数组:一个变量存储多个数据
// 数组的2种声明方式 (重点)
1) // 直接定义 var arr = [];
2) 使用构造函数创建数组 var arr = new Array();**
注意: **// 判断数组的方式 Array.isArray()
2. // 数组的属性
// length 获取长度 改变长度
3、 // 数组的索引 []
索引 是获取数组里面的值的方式 0开始 length - 1 结束
案例:随机抽取数组里面的一个值
案例:生成一个20位的数组,里面的值是0-100的随机数
4、 数组的遍历
1)for
2)专门用于数组和对象:
for…in
for…of (重点)
5、数组的常用方法如下
案例:随机抽取数组里面的一个值
分析:抽取数组里面的值必须通过角标
随机数的范围 0 - (length-1)
var num = rand(0,arr.length - 1);
document.write(arr[num])
function rand(min,max){
return Math.round(Math.random() * (max - min)) + min;
}
案例:生成一个20位的数组,里面的值是0-100的随机数
分析:
// 1 声明一个空数组
// 2 把长度定义为20
// 3 产生0-100的随机数
// 4 把产生的随机数给数组
第二种方法:arr2[i] = num
var arr2 = new Array();
arr2.length = 20;
for(var i = 0 ; i < 20 ; i++){
var num = rand(0,100);
arr2[i] = num //随机数赋值给数组里面的每一个数
}
console.log(arr2)
第三种方法: arr3[arr3.length] = num;
var arr3 = [];
for(var i = 0 ; i <20 ; i++){
var num = rand(0,100);
//当i=0时,arr3.length=0,
//所以arr3.[arr3.length]等价于arr3[0]=num,也就是arr3的索引为0项的数字//为0到100的随机数
arr3[arr3.length] = num;
}
console.log(arr3)
访问数组的方法(3种方法)
第一种:for
for(var i = 0 ; i < arr.length ; i++){
document.write(arr[i] + '<br>')
}
第二种: for…in 主要是用来访问数组和对象的**角标 arr[i]
// i是角标
for(var i in arr){
document.write(arr[i])
}
第三种** *for of item指的值 主要是用来访问数组和对象的值 value
for(var value of arr){
document.write(value)
}
数组的常用方法
1、push在数组的结尾追加一个或者多个数据,返回的是新数组的长度
var s = arr.push(1,67,89);
console.log(s);
2、 pop 删除数组里面的最后一个值 一个!!!!
1、 pop里面写参数没有用
2、 实际上返回的是被删除的数据
var res = arr.pop();
console.log(arr);
3、 unshift 在数组前面追加数据 ,并返回数组的长度
var s = arr.unshift('a','b');
console.log(arr,s)
4、 shift 在前面删除一个数据,返回被删除的数据
var s = arr.shift();
console.log(arr,s)
5、 **数组反向
arr.reverse();**
console.log(arr)
6、 sort 自动升序排列,但是是按照字符串的升序来排序的 – 看第一位数字
var arr = [67,45,3,1,9,66];
console.log(arr.sort());
// arr.sort() --- function(a,b){return a - b}
console.log(arr.sort(function(a,b){
return b - a}));
7、JOIN方法的案例:
题目:编写函数join(arr, char)用指定的符号将数组进行拼接,返回拼接后的字符串
// join([1,2,3,4], ‘+’) => ‘1+2+3+4’
arr = [‘h’,‘e’,‘l’,‘l’,‘o’];
第一种方法: console.log(arr.join(’+’))
// console.log(join(arr,’+’))
第二种方法:函数封装并使用 if else****如下
第三种方法:函数封装并使用if 及break如下
function join(arr,char){
var str = '';
// 把数组遍历一遍,挨个拼接
for(var i in arr){
if(i == arr.length - 1){
str += arr[i];
break
}
str += arr[i] + char
// else {
// str += arr[i] + char
// }
}
return str
}
console.log(join([1,2,3,5],'&'));
8、indexOf案例
题目:编写函数indexOf(arr, item)判断并返回item这个元素首次出现的下标,如果不存在返回-1
第一种方法:for in
function indexOf(arr,item){
// // 把数组里面的值挨个儿比一遍
for(var i in arr){
if(item == arr[i]){
return i
}
}
return -1
}
console.log(indexOf([1,2,3,4,5],4))
第二种方法:for
function indexOf(arr,item){
// 把数组里面的值挨个儿比一遍
for(var i = 0 ; i < arr.length ; i++){
if(item == arr[i]){
return i
} else if(i == arr.length - 1){
return -1
}
}
}
console.log(indexOf([1,2,3,4,5],4))
9、多维数组案例(略)