数组方法

1. arr.push(value1, value2,..., valueN)

往数组的末尾添加一个或多个元素,返回当前被修改后的数组的最新长度,该方法会改变原数组

2. arr.pop()

用于删除数组中最后一个元素,返回被删除的元素值

如果用在一个空数组,返回值是undefined

3. arr.unshift(value1, value2,...,valueN)

将元素添加到数组的开头位置,返回当前被修改后的数组的最新长度

4. arr.shift()

用于删除数组中第一个元素,返回被删除的元素值

如果用在一个空数组,返回值是undefined

5. arr.splice(start[, num, item1, item2,..., itemN])进行删除、添加、替换

(1)删除

- start 删除的起始位置

如果大于arr.length,则按arr.length处理,返回原数组

如果小于0,则从右到左查找对应的其实位置length+(start)

如果小于-arr.length,则按arr.length处理,返回空数组

- num 可选,默认删除到数组的最后一个元素,表示删除个数

如果小于0或NaN,则按0处理,不删除元素,返回原数组

(2)替换

- item1, item2,... 从删除的位置,添加第二个参数以后的内容

(3)添加

如果不删除元素,但是又存在第三个或者3+的参数,就会有添加的功能

(4)返回值是所有被删除的元素所组成的数组,如果没有删除任何元素(添加元素),将返回一个空数组

6. arr.sort(function(a, b){ return a-b;})

对数组进行排序,会影响原数组

如果不提供任何的参数,则根据默认排序规则排序

默认排序规则:根据Unicode排序

如果提供参数(函数),我们可以指定排序的规则

- a

- b

a和b代表两个在比较的值

如果 a-b 的结果

大于0:b 排到 a 的前面

小于0:b 排到 a 的后面

等于0:a 和 b 的位置不变

随机排序

利用Math.random(),返回值是0-1,包含0,但不包含1

7. arr.concat(arr1, arr2,..., arrN)

用于拼接两个或者两个以上的数组,返回一个新数组,并不会改变原有数组的值

8. arr.join(separator)

把数组用separator分隔符拼接成字符串并返回,如果不给参数,默认以都好进行间隔

如果是空数组,则返回空字符串

如果数组只有一个元素,则将元素以字符串形式直接返回

9. arr.reverse()

将数组中的元素倒序,并返回一个新的数组,而且会改变原数组

10 arr.indexOf(searchValue[, fromIndex])

查找arr中是否包含searchValue,如果包含,返回第一次出现searchValue的下标,如果不包含,则返回-1

fromIndex默认值为0

如果fromIndex超出length,则返回-1

如果fromIndex小于0大于-length,则从后往前确认查找的位置length+formIndex

如果fromIndex小于-length,则按0进行处理

11 arr.lastIndexOf(searchValue[, fromIndex])

查找arr中是否包含searchValue,如果包含,返回最后一次出现searchValue的下标,如果不包含,则返回-1

fromIndex默认值为length

如果fromIndex超出length,则按length处理

如果fromIndex小于0大于-length,则从前往后确认查找的位置length-formIndex

如果fromIndex小于-length,则返回-1

12 arr.slice(begin, end)

用于截取数组中的内容,返回一个新数组,并不会改变原有的数组

- begin 截取的起始位置,默认为0

如果大于length,则返回一个空数组

如果小于0大于-length,则从倒数第begin开始到length+begin

如果小于-length,则按0处理

- end 截取的结束位置,默认到数组的结尾

如果小于(从位置上来说)begin,则返回一个空数组

如果是负数(如果负数的绝对值超过length,那么就会得到一个空字符串),那么就说明从倒数end结束

如果超过了length,默认也直到数组的结尾位置

begin是包含在截取范围内的,end是不包含在截取范围内的

可以用来拷贝数组,更改新数组的元素, 而不影响原数组

eg: var arr6 = [{a:10, b:20}, "a"]

var arr7 = arr6.slice();

arr6[1] = "123";

arr6[0].a = "abcde";

console.log(arr6); // [{a:"abcde", b:20}, "123"]

console.log(arr7); // [{a:"abcde", b:20}, "a"]

- 深拷贝:数据拷贝过来后,和原数组之间完全没有任何关系

- 浅拷贝:数据拷贝过来后,里面的第一层的基本类型是没有关系了,但是里面的复杂类型,依旧是有关联(如上例所示)

- 赋址:数据不管是基本类型,还是复杂类型,都和原来的是相关联的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值