js中的数组对象的总结
这段时间查漏补缺 发现对数组的一些方法不太清楚了。在这里来一次总结。
//声明一个新数组
/*var arr=new Array(3) //数字为当前数组的长度
arr[0]="xueix"
arr[1]="shijian"
arr[2]="dasheng"
console.log(arr) //["xueix","shijian","dasheng"]
console.log(arr.length)//3*/
//将数组转为字符串 使用join()方法 返回一个新字符串 原数组不变
/*var arr=new Array(3)
arr[0]="xueix"
arr[1]="shijian"
arr[2]="dasheng"
var p=arr.join(",")//转成的字符串 以,分割
console.log(p)//xueix,shijian,dasheng
console.log(arr)//["xueix", "shijian", "dasheng"]*/
//将字符串转为数组 使用 split()方法 返回一个新数组 原字符串不变
/*var p="xueix .shijian .dasheng"
var arr=p.split(".",2) //(指定分割边界 ,分割的数组小于该长度)
console.log(arr)//["xueix ", "shijian "]
console.log(p)//xueix .shijian .dasheng
*/
//shift()方法 可以删除数组的第一个元素 并返回该元素 会改变数组长度 若数组为空 返回undefined
/*var arr=[1,2,3,4,5,6]
var shift=arr.shift()
console.log(shift)//1
console.log(arr)//[2, 3, 4, 5, 6]
console.log(arr.length)//5*/
//pop()方法 删除原数组的最后一个元素 并返回该元素 会改变数组长度 若数组为空 返回undefined
/*var arr=[1,2,3,4,5,6]
var pop=arr.pop()
console.log(pop)//6
console.log(arr)//[1, 2, 3, 4, 5]
console.log(arr.length)//5*/
//unshift()方法 为原数组在头部添加元素 下标为 0,1,2... 并返回新数组的长度
/*var arr=[1,2,3,4,5,6]
var unshift=arr.unshift(3)
console.log(unshift)//7
console.log(arr)//[3, 1, 2, 3, 4, 5, 6]*/
//push()方法 为原数组的尾部添加元素 并返回新数组的长度
/*var arr=[1,2,3,4,5,6]
var push=arr.push(5,8,9)
console.log(push)//9
console.log(arr) //[1, 2, 3, 4, 5, 6, 5, 8, 9]*/
//splice()方法 指定数组的开始删除的位置和个数 并添加新的元素(可不填)新添加的元素插入到开始删除的位置 返回一删除的数组 原数组做相应的改变 若开始值为-1 则从尾部第一个元素开始
/*var arr=[1,2,3,4,5,6]
var splice=arr.splice(3,2,7,8,9)
console.log(splice)//[4, 5]
console.log(arr)//[1, 2, 3, 7, 8, 9, 6]
*/
//slice()方法 指定删除的起始位置(必须) 结束位置(可不填)不填则从起始位置算起到数组结束位置 返回被删除的数组 原数组不改变
/*
var arr=[1,2,3,4,5,6]
var slice=arr.slice(1,3)
console.log(slice)//[2, 3]
console.log(arr)//[1, 2, 3, 4, 5, 6]*/
//concat()连接一个或多个数组 不会改变原数组
/*var arr=[1,2,3,4,5,6]
var arr1=[7,8,9,11]
var concat=arr.concat(arr1)
console.log(concat)//[1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
console.log(arr)//[1, 2, 3, 4, 5, 6]
console.log(arr1)//[7, 8, 9, 11]
*/
//sort()对数组进行排序 按照数组大小需要引入相应的函数 直接在原数组上排序
/*var arr=[5,9,2,1,4,5]
//从小到大排序
function sortNumber(a,b){
return a-b
}
//从大到小
function sortNumber(a,b){
return b-a
}
console.log(arr)//[5, 9, 2, 1, 4, 5]
var sort=arr.sort(sortNumber)
console.log(sort)//[1, 2, 4, 5, 5, 9]*/
//reverse()对数组进行倒序 改变原数组
/*var arr=[5,9,2,1,4,5]
var reverse=arr.reverse()
console.log(reverse)//[5, 4, 1, 2, 9, 5]
console.log(arr)//[5, 4, 1, 2, 9, 5]*/
//数组对象的属性 constructor 构造函数
/*var arr=[5,9,2,1,4,5]
if (arr.constructor==Array)
{
document.write("This is an Array");
}
if (arr.constructor==Boolean)
{
document.write("This is a Boolean");
}
if (arr.constructor==Date)
{
document.write("This is a Date");
}
if (arr.constructor==String)
{
document.write("This is a String");
}*/
/*
//构造对象函数
function man(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
//实例化一个新对象
var bill=new man("bills",15,"man")
//打印该对象的constructor
console.log(bill.constructor)//ƒ man(name,age,sex){ this.name=name;this.age=age;this.sex=sex;}*/
//数组对象的属性 length 代表了数组元素的个数
/*var arr=[1,2,3,4,5,6]
console.log(arr.length)//6
*/
//数组对象的属性 prototype 对象的原型 构造函数包含在构造对象的原型中
//构造对象函数
function man(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
//实例化一个新对象
var bill=new man("bills",15,"man")
//向构造函数原型中添加新属性 work
man.prototype.work=null;
//设置新对象的work
bill.work="coder"
console.log(man.prototype)// {work: null, constructor: ƒ man(name,age,sex),__proto__: Object}
console.log(bill)//man {name: "bills", age: 15, sex: "man", work: "coder"}
这里面包括了数组和方法 和数组对象的属性