JavaScript数组对象
数的组合
使用单独的变量命储存一系列的值,一个容器储存多个元素。
// 单独声明变量 储存数据
var name1= "生蚝";
var name2= "排骨";
var name4= "鸡";
var name3= "鲍鱼";
// 使用数组将 一系列的值进行储存
var aNames=["生蚝","排骨","鸡","鲍鱼"];
var hao1 = {
name: "生蚝1",
prop: "健体"
}
var hao2 = {
name: "生蚝2",
prop: "健体"
}
var hao3 = {
name: "生蚝3",
prop: "健体"
}
var aHaos = [{
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关键字
var arr2=new Array();
// 添加数组项/元素
arr2[0]="A";
arr2[1]="G";
arr2[2]="R";
console.log(arr2);
3.简写
var arr3=new Array("生蚝","排骨","鸡","鲍鱼");
console.log(arr3);
// 注意: 数组项为数字,且只有一个数组项 代表是数组项的个数
var arr4=new Array(10);
console.log(arr4);
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]);
console.log(typeof arr3);
// for循环 遍历数组的项
for(var m=0;m<4;m++){
console.log(arr3[m])
}
var food={
kind:"meat"
}
console.log(food["kind"]);
JavaScript数组添加项
var arr3=new Array("生蚝","排骨","鸡","鲍鱼");
console.log(arr3);
// 通过索引 添加数组项
arr3[5]="白骨精";
arr3[6]="女儿国";
arr3[7]="雏田";
arr3[1]="花火";
arr3[9]="小樱";
console.log(arr3);
JavaScript数组的属性
var arr=new Array("生蚝","排骨","鸡","鲍鱼");
var arr2=["生蚝","排骨","鸡","鲍鱼","秋葵"];
console.log(arr);
console.log(arr2);
// - 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);// 长度小于原数组的常速 删除超出部分的元素
// var arr3=new Array();
// arr3.length=10;
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
// - constructor:返回创建数组对象的原型函数
// 通过 哪个函数 构造传来的 返回哪个函数
console.log(arr.constructor);
console.log(arr2.constructor);
// - 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"];
① 数组的方法, **方法的作用 方法返回的结果**
// concat() 连接两个或更多的数组,并返回结果。
console.log(arr1.concat(arr2,arr3));//返回新数组
console.log(arr1);//原数组不变
② 删除和添加
// 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);// 改变原数组
④shift() 删除并返回数组的第一个元素。
console.log(arr1.shift());//1
console.log(arr1);// 改变原数组
⑤ unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
console.log(arr1.unshift(1,0));// 7
console.log(arr1);// 改变原数组
⑥ slice(开始的索引,结束的索引) 选取数组的一部分,并返回一个新数组。
// 留头不留尾
console.log(arr1.slice(0,4));// 截取数组
console.log(arr1);// 原数组不变
⑦ splice(开始的索引,截取的长度,添加的元素) 从数组中添加或删除元素。
// console.log(arr1.splice(1,4));// 删除
console.log(arr1.splice(1,0,"A","B","C",10,20,30));// 添加
console.log(arr1);// 改变原数组
⑧ 搜索数组项的位置
// 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不存在")
// }
⑨ lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。
console.log(arr1.lastIndexOf(30));//12
console.log(arr1.lastIndexOf("X"));//-1
⑩ join() 把数组的所有元素放入一个字符串。 数组转为字符串
console.log(arr2.join());
console.log(arr2);// 不改变原数组
⑪ split(转换的标识符) 将字符串转换为数组 字符串的方法
var str="hello"
console.log(str.split(""));
⑫ reverse() 反转数组的元素顺序。
console.log(arr3.reverse());
console.log(arr3);// 改变原数组