JavaScript push() 方法详解

时间: 2018-10-25阅读: 22745标签: 函数

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.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

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

JS中function

在js程序开始执行前,引擎会查找所有var声明的变量和function声明的函数,集中到当前作用域顶部集中创建,赋值留在原地;声明方式创建函数--会被声明提前

JS常用函数原理的实现

本文针对目前常见的面试题,实现了相应方法的核心原理,部分边界细节未处理。后续也会持续更新,希望对你有所帮助。实现一个call函数;实现一个apply函数

js常用方法大全_前端常用Js函数封装

这是我在实际开发中常用的一些Js函数方法,今天总结了一下,以便以后查询,有需要的小伙伴可以参考下。包括:加载js || css || style、获取url参数、本地存储、cookie操作【set,get,del】、Js获取元素样式【支持内联】

引用类型作为函数参数何解

在向函数传递引用类型的参数时,相当于把引用类型的地址复制给函数内的一个局部变量,所以局部变量和传入的参数会指向内存中的同一个对象。 局部变量的变化也会映射到传入参数

js 中的Generator 函数

首先可以把它理解成,Generator 函数是一个状态机,封装了多个内部状态。执行 Generator 函数会返回一个遍历器对象,也就是说,Generator 函数除了状态机,还是一个遍历器对象生成函数。返回的遍历器对象,可以依次遍历 Generator 函数内部的每一个状态。

JS 中构造函数和普通函数的区别

构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)

vue生命周期简介和钩子函数

简单的来说一下vue的生命周期函数:beforeCreate el 和 data 并未初始化,created 完成了data数据的初始化,el没有,beforeMount 完成了虚拟el和data初始化

js声明函数

JS声明函数的三种方式:函数表达式: function操作符创建函数, 表达式可以存储在变量或者对象属性里. 往往被称为匿名函数, console.log(h.name); 可以看到打印为空;函数声明: 具名函数, 且函数能在其所在作用域的任意位置被调用

浅析js的工厂函数、构造函数

首先,说下工厂函数。顾名思义,就好比一个工厂一样,可以批量制造某种类型的东西。其实说白了就是封装了个方法减少重复工作,相信稍微有点码龄的人都懂。上代码:

什么场景不适合箭头函数

这些年来,ES6 将 JS 的可用性提升到一个新的水平时: 箭头函数、类等等,这些都很棒。箭头函数是最有价值的新功能之一,有很多好文章描述了它的上下文透明性和简短的语法。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!