JavaScript push() 方式详解

push界说和用法 push() 方式主要用于向数组的末尾添加一个或多个元素,其返回值为添加后新的长度,即push后的数组长度,该值为number类型。 注重: 1.一定是在数组的末尾添加 2.该方式会改变...

push界说和用法

push() 方式主要用于向数组的末尾添加一个或多个米素,其返回值为添加后新的长度,即push后的数组长度,该值为number类型。

注重:

1.一定是在数组的末尾添加
2.该方式会改变原数组的长度
3.若是需要在数组起始位置添加米素请使用 unshift() 方式


push函数语法

str.push(newele1,newele2,....,neweleX)

参数值说明:

newele1 必须。要添加到数组的第一个米素。
newele2 可选。要添加到数组的第二个米素。
neweleX 可选。可添加多个米素。



说明

push() 方式是把它的参数按顺序举行添加到原数组的尾部,它直接修改了原数组的长度,并不会建立一个新的数组;行使push实现数组进栈功效,出栈可以使用pop方式。


实例

1.一个数组中添加新米素 :

var arr=['红','橙','黄'];
var result=arr.push('绿','蓝');
console.log(arr);//输出arr数组内容:["红", "橙", "黄", "绿", "蓝"]
console.log(result);//输出push返回的效果:5
console.log(typeof result);//效果类型:number


2.小技巧,把一个数组的值赋值到另一个数组上:

var arr1=['红','橙','黄'];
var arr2=[];
arr2.push(...arr1);//这样arr1中的值就赋值给了arr2上了
console.log(arr2);//输出:["红", "橙", "黄"]

备注:这里使用了es6的扩展运算符(...),它主要是将一个数组转为用逗号分开的参数序列。console.log(...[ '红','橙','黄'  ])等价于:console.log('红','橙','黄'  )


3.高级知识,在工具中使用push

a:在工具中需要添加push的属性,其值为数组原型链的push方式,如下:

var obj = {
   name:'fly63',   
   push:Array.prototype.push
};
obj.push('测试');
console.log(obj[0]);//输出:测试
console.log(obj);//输出:{0: "测试", name: "fly63", length: 1, push: ƒ}
console.log(obj.length);//输出:1,工具默认是没有length属性的,这里使用了push方式,则会建立一个length属性

备注:这里push进去的值默以为第一个,这是由于push是凭据 length 属性来决议从那里最先插入给定的值,上述例子中并未声明length属性,则会建立length属性。验证一下:

var obj = {
   name:'fly63',  
   length:2,//'2'也可以,只有length能被转换为数值即可
   push:Array.prototype.push
};
obj.push('测试');
console.log(obj[2]);//输出:测试
console.log(obj);//输出:{2: "测试", name: "fly63", length: 3, push: ƒ}

由此可见:push会凭据工具length属性的值去确定插入的位置,当length不存在,或者不能被转为一个数值的时刻,则插入的米素索引默以为 0


b.行使call() 或 apply() ,如下:

var obj = {
   name:'fly63', 
};
Array.prototype.push.call(obj,'测试');
//或者Array.prototype.push.apply(obj,['测试']);
console.log(obj[0]);//测试

call和apply的不懂的请点这个链接。[地址:http://www.fly63.com/article/detial/450]


完结~~~~~~~~

思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入

3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1187

  • 发表于 2021-02-11 16:56
  • 阅读 ( 358 )
  • 分类:互联网

0 条评论

请先 登录 后评论
陈华除嘿
陈华除嘿

652 篇文章

你可能感兴趣的文章

相关问题