JS 4-15笔记

104 阅读3分钟

JavaScript数组对象

数组:数的组合
使用单独的变量命储存一系列的值,一个容器储存多个元素

// 单独声明变量 储存数据 
var name1 = "唐僧"; 
var name2 = "孙悟空"; var name3 = "猪悟能"; 
var name4 = "沙悟净"; 
// 使用数组将 一系列的值进行储存 
var aNames = ["唐僧", "孙悟空", "猪悟能", "沙悟净"];
var bai1 = { name: "白龙马1", prop: "蹄朝西" } 
var bai2 = { name: "白龙马2", prop: "蹄朝西" } 
var bai3 = { name: "白龙马3", prop: "蹄朝西" } 
// 数组 
var aBais = [{ name: "白龙马1", prop: "蹄朝西" }, { name: "白龙马2", prop: "蹄朝西" }, { name: "白龙马3", prop: "蹄朝西" } ]

JavaScript数组的创建

1.字面量 []
var arr=[1,2,3,4,5,6,7]; 
console.log(arr);
2.常规方式 构造函数 new关键字
ar arr2=new Array(); 
// 添加数组项/元素 
arr2[0]="A"; 
arr2[1]="B"; 
arr2[2]="C"; 
console.log(arr2); 
// 简写
var arr3=new Array("唐僧","孙悟空","猪悟能","沙悟净"); 
console.log(arr3);

注意: 数组项为数字,且只有一个数组项时,数字代表的是数组项的个数

var arr4=new Array(5); 
console.log(arr4);
//empty 5 (5个空数组项)

JavaScript数组的访问

通过索引进行访问

var arr3=new Array("唐僧","孙悟空","猪悟能","沙悟净"); 
console.log(arr3); 
// 索引:由0开始的整数,所有的数组都有索引 
console.log(arr3[0]);//唐僧 
console.log(arr3[1]);//孙悟空 
console.log(arr3[2]);//猪悟能 
console.log(arr3[3]);//沙悟净

用for循环遍历数组的项

for(var i=0;i<4;i++){ 
console.log(arr3[i])
//唐僧 孙悟空 猪悟能 沙悟净 
}

JavaScript数组添加项

通过索引添加数组项

var arr3=new Array("唐僧","孙悟空","猪悟能","沙悟净"); 
console.log(arr3); 
// 通过索引 添加数组项 
arr3[4]="白龙马"; 
arr3[5]="白龙马"; 
arr3[6]="白龙马"; 
rr3[1]="六耳猕猴"; 
arr3[10]="观音菩萨"; 
console.log(arr3);

JavaScript数组的属性

var arr=new Array("唐僧","孙悟空","猪悟能","沙悟净"); 
var arr2=["唐僧","孙悟空","猪悟能","沙悟净","白龙马"]; 
console.log(arr); console.log(arr2);
1.length:设置或返回数组元素的个数

获取(length比数组最大索引+1)

console.log(arr.length);//4 
console.log(arr2.length);//5

设置长度

arr.length=10; console.log(arr);
// 长度超过了原数组的长度 超出元素为undefined arr2.length=3; 
console.log(arr2);
// 长度小于原数组的长度 删除超出部分的元素

2.constructor:返回创建数组对象的原型函数

// 通过 哪个函数 构造传来的 返回哪个函数 
console.log(arr.constructor); 
console.log(arr2.constructor);

3.prototype:允许向数组对象(Array)添加属性或方法

Array.prototype.name="数组"; 
var arrx=new Array(); console.log(arrx.name);
console.log(Array.prototype);

JavaScript数组的方法

var arr1=[1,2,3]; 
var arr2=[4,5,6]; 
var arr3=["A","B","C","D","E","F","G"]; // 拼接 console.log(arr1.concat(arr2,arr3));//返回新数组 
console.log(arr1);//原数组不变\

2.pop() 删除数组的最后一个元素并返回删除的元素

console.log(arr1.pop());
//返回被删除的元素 
console.log(arr1);//[1, 2] 改变原数组

push() 向数组的末尾添加一个或更多元素,并返回新的长度

console.log(arr1.push(3));//3 
console.log(arr1.push(10,20,30));//6 
新数组的长度 console.log(arr1);// 改变原数组

4.shift() 删除并返回数组的第一个元素

console.log(arr1.shift());//1 
console.log(arr1);// 改变原数组

5.unshift() 向数组的开头添加一个或更多元素,并返回新的长度

console.log(arr1.unshift(1,0));// 7 
console.log(arr1);// 改变原数组

6.slice(开始的索引,结束的索引) 选取数组的一部分,并返回一个新数组

// 留头不留尾 console.log(arr1.slice(0,4));// 截取数组
console.log(arr1);// 原数组不变

7.splice(开始的索引,截取的长度,添加的元素) 从数组中添加或删除元素

// console.log(arr1.splice(1,4));// 删除 
console.log(arr1.splice(1,0,"A","B","C",10,20,30));// 添加 
console.log(arr1);// 改变原数组

8.indexOf(被搜索的元素) 搜索数组中的元素,并返回它第一次出现的位置

console.log(arr1.indexOf(1));//0 
console.log(arr1.indexOf("A"));//1 
console.log(arr1.indexOf(30));//6 
console.log(arr1.indexOf("W"));// -1 找不到被检索的元素 返回-1 // if(arr1.indexOf("W")===-1){ 
// console.log("W不存在") // }

9.lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置

console.log(arr1.lastIndexOf(30));//12 
console.log(arr1.lastIndexOf("X"));//-1

10.join() 把数组的所有元素放入一个字符串。 数组转为字符串

console.log(arr2.join()); 
console.log(arr2);// 不改变原数组

11.split(转换的标识符) 将字符串转换为数组 字符串的方法

var str="hello" 
console.log(str.split(""));

reverse() 反转数组的元素顺序

console.log(arr3.reverse()); 
console.log(arr3);// 改变原数组