JavaScirpt 数组(一)

JavaScirpt 数组(一)

文章参考:W3school 小火柴的前端小站;

js是前端的基础,正所谓基础不牢,地动山腰,数组是js中重点内容,对于数组方法的灵活使用是一名合格前端的必备技能,所以让我们一起开始学习吧!


​ (1) toString方法

toString方法会把数组转换为以逗号分隔的每个值拼接的字符串

var name = ["jack","Amy","Tom","jerry"];
name.toString();//'jack,Amy,Tom,jerry'

(2)pop方法

pop方法类似"出栈",也就是删除数组最后一个元素(作为返回值),数组的长度 length也会相应变化,是数组中的变异方法,会改变原数组

var arr = [1,2,3];
console.log(arr.pop());//3
console.log(arr,arr.length);//[1,2] 3

​ (3) push方法

push方法类似"入栈",也就是在数组末尾添加一个元素(作为返回值),数组的长度 length也会相应变化,是数组中的变异方法,会改变原数组

var arr = [1,2,3];
console.log(arr.push(4));//4
console.log(arr,arr.length);//[1,2,3,4] 4

插话:在许多文章内,看到了许多类似这样的表达式:

[].push.call(someObj,someProperty);

Array.prototype.push.apply(arr1,arr2)

等等用法,可能许多小伙伴看到apply call bind应该知道它们的用法,下一期谈谈它们。


​ (4)shift方法

shift方法会删除第一个数组元素(作为返回值),数组的长度 length也会相应变化(length - 1)是数组中的变异方法,会改变原数组

var arr = [1,2,3];
console.log(arr.shift());//1
console.log(arr,arr.length);//[2,3] 2

​ (5)unshift方法

unshift方法会向数组的开头添加一个或更多元素,所以参数可以有一个或多个,并返回新的长度。[注:不考虑低版本的浏览器]

var arr = [1,2,3];
console.log(arr.unshift(0));//4
console.log(arr,arr.length);//[0,1,2,3] 4

​ (6)concat方法

concat方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,是非变异方法。[用于数组拼接]

​ 要合并的数据若为数组时,将其合并到原数组;若为具体数据时直接添加到原数组尾部省略时创建原数组的副本

​ 听上去有点绕绕的,上代码!

//concat方法不会改变原有数组
var arr1 = [1,2,3];
var arr2 = arr1.concat();//缺省则创建原数组的副本 [1,2,3]
console.log(arr2);//[1,2,3]
console.log(arr1 === arr2);//false 原数组跟其创建的副本
//-----------------分割线----------------------
console.log(arr1.concat(4));//[1,2,3,4]
console.log(arr1.concat([4,5],[6,7]));//[1,2,3,4,5,6,7]
console.log(arr1)//思考?
//结果是 [1,2,3]

​ 思考一下:concat方法是浅拷贝还是深拷贝?

​ 插话:后面会出一期讲


​ (7)splice方法

silcesplice方法名字相似,但是方法使用有着天壤之别,所以要好好区分才行。

​ 该方法功能很强大,可用于删除数组元素,又可以向数组中添加元素,会改变原数组,为变异方法。

​ 情况一 : 缺省 返回一个空数组

var arr = [1,2,3];
console.log(arr.splice());//Array(0)

​ 情况二 : 只有一个参数,将原数组在指定位置进行拆分成两个数组

var arr = [1,2,3,4,5,6];
console.log(arr.splice(2));//Array(4) [3,4,5,6]
console.log(arr);//[1,2]

​ 情况二 : 有两个参数,第一个参数指定删除的起始位置,第二个参数为删除元素的个数。

var arr = [1,2,3,4,5,6];
console.log(arr.splice(2,2));//删除以数组下标为2的两个元素 [3,4]
console.log(arr);//[1,2,5,6]

​ (8)slice方法

​ 用于将数组的某个片段切出新数组,不会改动原数组,非变异方法。

​ 使用示例 : silce(start,end);

var arr = [1,2,3,4,5];
console.log(arr.slice(2));//[3,4,5]
console.log(arr);//[1,2,3,4,5]

​ (9)valueOf方法

valueOf方法返回数组对象本身

var arr = [1,2,3];
console.log(arr.valueOf());//[1,2,3]

​ (10)join方法

​ 可将所有数组元素结合为一个字符串。

var arr = [1,2,3];
console.log(arr.join());//'1,2,3'
console.log(arr.join(' '));//'1 2 3'
console.log(arr.join(''));//'123'

tips: 有兴趣的话,可以查阅资料和思考一下参数为NaNundefined的情况,使用这些数组方法的时候,会发生什么?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值