js 数组对象凭借_js数组对象

push()

往数组的 末尾 添加数组元素,可添加多个,返回值为改变后的数组长度,会改变原数组

var arr1 = [1,2];

arr1.push(3,4); //返回4arr1//[1,2,3,4]

pop()

删除 末尾 数组元素,无参,返回值为被弹出的元素,会改变原数组

var arr2 = [1,2,3,4];

arr2.pop();//返回arr2末尾的元素4arr2//[1,2,3]

unshift()

往数组的 开头 添加数组元素,可添加多个,返回值为改变后的数组长度,会改变原数组

var arr3 = [1,2];

arr3.unshift(3,4); //返回新的长度4arr3//[3,4,1,2]

数组的unshift方法有一点要注意:当插入的元素为多个时,该方法的操作是一次性插入元素。即是说,既然是插入到数组最开头,那么按理说上面的代码操作结果应该是arr3的值为[4,3,1,2],但实际上却是[3,4,1,2],说明unshift方法是吧(3,4)作为一个整体一次性插入到了原数组开头,而不是一个一个地做插入操作。

shift()

删除 开头 数组元素,无参,返回值为被弹出的元素,会改变原数组

var arr4=[1,2,3,4];

arr4.shift();//返回原数组的第一个元素1

arr4 //[2,3,4]

数组的push和pop方法多用来进行入栈和弾栈操作,即把数组当做栈来使用

splice()

返回一个包含已删除项的数组

当只有一个参数时,表示从下标为该参数值的位置开始依次删除元素

var arr = [1,2,3,4]

arr.splice(2); //从下标为2的位置开始删,直到最后一个,返回由被删除项组成的数组[3,4]

console.log(arr) //[1,2]

当有两个参数时,表示从下标为参数1 的位置开始删除 参数2的值 代表的元素个数

var arr = [1,2,3,4]

arr.splice(1,2) //从下标为1的位置开始删除2个元素,返回[2,3]

console.log(arr) //[1,4]

当有三个及三个以上的参数时,表示替换元素,第二个参数为0时,表示添加元素。例如:

1 var arr = [1,2,3,4]2 arr.splice(1,2,5,6) //从下标为1的位置,替换2个元素,返回被替换的元素组成的数组[2,3]

3 console.log(arr) //结果arr里有 1 5 6 4

1 arr.splice(1,0,5) //从下标为1的位置,添加1个元素5,返回[]

2 console.log(arr) //结果arr里有 1 5 2 3 4

添加元素时,splice方法返回一个空数组,因为没有删除任何元素

替换元素时,splice方法返回被替换下来的元素组成的数组;如果新的元素个数大于被替换的元素,那么splice方法会继续在数组之后添加多出的元素

var arr = [1,2,3,4,5]

arr.splice(3,2,1,2,3) //从第三个位置开始替换2个元素,把4,5替换为1,2,然后多出的3添加到数组后面,返回被替换的元素[4,5]

console.log(arr) //[1,2,3,1,2,3]

concat

连接数组,但不会改变原数组,返回连接之后的新数组

1 var arr1 = [1,2,3]2 var arr2 = [4,5,6]3 var arr3 =arr1.concat(arr2)4 console.log(arr3) //结果arr3里有 1 2 3 4 5 6

join

将数组元素结合为一个字符串,而且可以通过分隔符来实现,不会改变原数组,返回变化过后的新数组

var arr=[ 'hello', 'world', 'haha']var arr2=arr.join() //'hello', " world', ' haha

var arr2=arr.join('') //helloworldhaha

var arr2=arr.join('-') //hello-world-haha

console.log(arr2);

toString

将数组元素转换为一个字符串。 所有 JavaScript 对象都拥有 toString() 方法。针对数组,这里的toString方法是将数组的每个元素都变成字符串(不包括方括号),然后用逗号分隔并以字符串列表的形式返回,不会改变原数组

var arr = [1,2,3,4]

arr.toString()//"1,2,3,4"

var arr1 = [1,2,3,[4,[5,6]]

arr1.toString()//"1,2,3,4,5,6"

slice

截取数组的部分元素并返回数组,但不会改变原数组。

2个参数时,表示从下标为 参数1 的位置开始截取,到 下标为 参数2 的位置停止截取,但不包括下标为 参数2 的位置

var arr = [1,2,3,4]var arr2 = arr.slice(1,3)

console.log(arr2)//结果arr2 中有 2 3

//实现浅拷贝

var arr = [1,2,3,4]var arr2 =arr.slice()

arr2[3] = 5console.log(arr,arr2)//结果arr里依旧是 1 2 3 4,arr2里是 1 2 3 5

如果是多维数组,slice并不能拷贝一层以上的数组,所以会影响原数组

当参数中含有负数时,表示截取倒数的第几个元素到某个元素开的一个片段

var arr = [1,2,3,4]

arr.slice(-1,-3) //[3,4]

sort

数组排序,返回的是排序后的数组,会改变原数组

如果sort没有参数,那么默认是以字母表顺序从小到大排序

var arr = ["banana", "mango" ,"cherry", "apple"]

arr.sort();//["apple","banana" ,"cherry", "mango" ]

当数组元素是数字时,并且sort无参时,sort方法会把这些数字转换成字符串类型,然后通过字符串编码的顺序从小到大排序

var arr1 = [1,2,11,123,21,27,98,200,3];

arr1.sort()//[1, 11, 123, 2, 200, 21, 27, 3, 98]

先比较数组元素的第一个字符,按“0”到“9”排序,再比较第二个字符,按“0”到“9”排序,...以此类推,最后得到结果

[1, 11, 123, 2, 200, 21, 27, 3, 98],所以如果数组元素是0-9以内的数字,那么可以直接使用无参的sort进行排序

若要按照数字大小排序,可以通过比值函数来实现,即在sort方法内部传一个函数参数,sort方法的参数必须是一个有返回值的函数,并且该函数要有两个比较的参数,代表数组中相邻的两个数组元素

var arr1 = [1,2,11,123,21,27,98,200,3];

arr1.sort((a,b)=>{if(a

}else if(a>b){return 1; //如果前面的元素大于后面的元素,就返回一个正值

}else{return 0 //如果前面的元素与后面的元素相等,返回0

}

})//[1, 2, 3, 11, 21, 27, 98, 123, 200]

reverse

数组反转,也就是颠倒数组中的元素的顺序。返回倒序后的数组,改变原数组。

var arr1 = [1,2,3,4,5];

arr1.reverse()//[5, 4, 3, 2, 1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值