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"}

  这里面包括了数组和方法 和数组对象的属性

posted @ 2017-11-15 14:55  missmz  阅读(374)  评论(0编辑  收藏  举报