js数组:定义方法(两个)和常用方法(1.改变原数组七个方法 2.不改变原数组五个方法)

Ⅰ.数组的定义方法


数组的定义方法有两个

<1>.字面量方法定义数组
var arr = [ ];

<2>.使用构造函数定义数组
var arr = new Array();

这两种方法都来自Array.prototype

例子:
<1> var arr=[1,5,4,8];

<2> var arr = new Array(9)
在<2>里有两个要注意的点
1.用new Array()方法定义数组,当只传输一个值时,这个值会变成数组的长度,没有具体的值
2.并且只传输一个值时不能传有小数点的数,不然会报错
这两个可以在后台操作一下加深记忆,其他跟字面量方法一样


Ⅱ .数组常用的方法(重点来了)



一:改变原数组的七种方法

1.数组的push(添加数据)方法:在最后一位添加(无上限)
下面是系统实现push方法的具体代码

 Array.prototype.push = function(){
   
			 	for(var i = 0 ; i < arguments.length; i++ ){
   
					this[this.length] = arguments[i];
				} 
			 	return this.length;
			 }

是利用arguments.length—>数组的长度来实现的
例子:
var arr = [1,2,3];
在后台:
arr.push(1111,454)
arr = [1,2,3,111,454]

2.数组的unshift(添加数据)方法:在最前面一位添加(无上限)
例子:
var arr= [54,84];
在后台:
arr.unshift(1111,454)
arr=[111,454,54,84]

3.数组的pop(剪切数据)方法:将数组的最后一位剪切掉(只能一位一位的剪)
例子:
var arr = [1,4,8];
在后台:
arr.pop()
arr=[1,4]

4.数组的shift(剪切数据)方法:将数组的最前面一位剪切掉(只能一位一位的剪)
例子:
var arr= [54,84,88,64];
在后台:
arr.shift()
arr=[84,88,64]

5.数组的reverse方法:将数组里的数据顺序调转
例子:
var arr= [54,84,5,88]
在后台:
arr.reverse()
arr= [88,5,84,54]

6.!重点:splice:切片方法,可以实现删除数据也可以实现添加数据 !

		arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据)

spilce系统后台调用数据的代码:

splice = function(position){
   
			 	position += position > 0 ? 0 : this.arr.lenth
			 position >= 0 || position < arr.length
			}

(1):删除数据
var arr = [1,2,3,4,6];
在后台:
arr.splice(0,3) //切掉了[1,2,3]
此时:arr=[4,6]

(2)添加数据:顺序是数组顺序+1
var arr = [1,2,3,4,6]; // 在4和6之间添加5,即顺序是第3位数据4的后面添加5
在后台:
arr.splice(4,0,5)
此时:arr =[ 1,2,3,4,5,6]

ps: 在这里说明一下,数组顺序可以有负数
在后台:arr.splice(-1,0,5)
此时:arr =[ 1,2,3,4,5,6]效果跟上面一样;

7.!! 重中之重 : sort:给数组内的数据排序 !!

普通升序: 在后台: arr.sort()
普通降序: 在后台: arr.sort().reverse()

但是有 bug !!!!  		

例子:

var arr= [1,2,-5,10,4];

在后台:
arr.sort()
(5) [-5, 1, 10, 2, 4]

这不是我们想要的升序

!!! 因此arr.sort()提供了方法接口,让开发者自己定义规则 !!!

  • 有序排列规则
    <1>.必需写两个参数,方便后面对两两数据对比大小排序。
            传[1,2]对比,然后[1,-5]…[2,-5]…重复
    <2>.看返回值:
          ①当返回值为负数时,那么前面的数放在前面
          ②为正数,那么后面的数放在后面
          ③为0,不动

下面来看看实现升序:

var arr= [1,2,-5,10,4];

 arr.sort(
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值