在 JS Array 中支持两个方法,shift()
和pop()
,分别是指从一个数据中的最前面和最后面删除一个值,并返删除值。看一个示例就明白了:
1
|
var arr
= [ 's' , 'o' , 'f' , 'i' , 's' , 'h' ];
|
在很多 JS 框架中可以很常见的是,一个方法提供你传几个参数,而这些参数中,部分是可以忽略的,这些可以忽略的点可能是第一个,也可能是最后一个。传统的写法是判断参数有没有存在,或者参数的个数来决定最终取值。
这里,我们可以利用函数的arguments
对象,以及 Array 中的shift
和pop
来实现灵活的应用。
一、使用shift
如何实现一个.bind()
方法,让 fn api 如下:
3
|
fn.bind(object,
param1, param2, [, paramN]);
|
看一个实例先。当然,这例子可能更为重要的是call
和apply
的应用。不过,我们想要说的是shift
的应用:
02
|
Function.prototype.bind
= function (){
|
04
|
args
= Array.prototype.slice.call(arguments),
|
05
|
object
= args.shift();
|
07
|
return fn.apply(object,
|
08
|
args.concat(Array.prototype.slice.call(arguments)));
|
我们可以利用对arguments
对象(array-like object,需要转换成真正的 array)进行shift
来取出,像这个方法,主要利用它们来分出作为作用域的object
,然后巧妙地把余下的参数数组传给fn
,即调用我们想限定到object
作用域内的函数。
二、使用pop
最近在试用 seajs,我们就拿它的一个 api 来说吧:
1
|
define(id,
dependencies, callback)
|
这个定义一个模块的 api,id
和dependencies
都是可以省略的。这里,如何实现这个支持呢?如果使用 if 来判断,真就得if (arguments === 1) {...} elseif ...
一大堆了。当然,这样有时候也有好处的(?,想想)。这里,我们可能用来pop
来方便实现这样的支持:
01
|
var define
= function (){
|
03
|
var args
= [].slice.call(arguments)
|
10
|
var args
= arguments, i = 0, len = args.length;
|
11
|
if (len
=== 0) console.log( '只有一个
callback' );
|
19
|
define( '有两个参数' ,
callback);
|
20
|
define( '有三个参数' , 'hello
world' ,
callback);
|
分享到:
相关推荐
在 JS Array 中支持两个方法,shift() 和 pop(),分别是指从一个数据中的最前面和最后面删除一个值,并返删除值。看一个示例就明白了: 代码如下:var arr = [‘s’,’o’,’f’,’i’,’s’,’h’]; arr.shift(); //...
Array.shift() Array.pop() Array.splice() Array.join() Array.concat() Array.slice() Array.copyWithin() Array.entries() Array.every() Array.fill() Array.find() Array....
JavaScript中的Array对象,就是我们常说的数组对象,主要用于封装多个任意类型的数据,并对它们进行管理。 所有主流浏览器均支持Array对象。 大家都知道Array实例有这四个方法:push、pop、shift、unshift。大家也都...
Fecal.js 简单JavaScript库,适用于经常误输入JSON.parse()和Array方法pop() , shift()和unshift()或其他方法的人。如何使用只需在您的文档中包含lib/fecal.js文件... < script src =" lib/fecal.js " > <...
实现了一些比较常见的array功能,并且使用了 jest 进行测试。 实现的方法包括: concat find flat forEach & map includes join pop push reduce reverse shift slice some sort splice unshift 有些同质化比较高的...
本文实例总结了JavaScript数组Array对象增加和删除元素方法。分享给大家供大家参考。具体分析如下: pop 方法 移除数组中的最后一个元素并返回该元素。 arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象。 ...
本文实例讲述了JS数组push、unshift、pop、shift方法的实现与使用方法。分享给大家供大家参考,具体如下: 尾部添加(push) push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。 从解释中可以看出...
} pop 方法 移除数组中的最后一个元素并返回该元素。 arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象。 说明 如果该数组为空,那么将返回 undefined。 代码如下:var a=[1,2,3,4] a.pop() alert&#...
2. 实例方法:介绍 Array 对象的实例方法:concat、every、filter、forEach、indexOf、join、lastIndexOf、map、pop、push、reverse、shift、slice、sort、splice、toString、tounshift等。 3. 静态方法:介绍 Array...
var list = new Array()是我们在js中常常写到的代码,今天就总结哈Array的对象具有哪些方法。 list[0] = 0; list[1] = 1; list[2] = 2; 或者这样声明:var list = [0,1,2] 1 shift()t:删除数组的第一个元素,返回删除...
pop,shift返回该元素 reverse返回该元素 splice(start,deleteCount,addItem…),从原数组中删除和增加,返回删除的数组 不会改变原来的数组,返回新的数组 concat,join,slice(start,end) 记住这3个是返回新数组,其他...
1、concat方法 [作用] 将多个数组联合起来,这个方法不会改变现存的数组,它只返回了所结合数组的一份拷贝。... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 3、pop、shift方法 [作用] pop方法删除和返回数
s中数组的声明可以有几种方式声明 代码如下: var tmp = []; // 简写模式 var tmp = new Array(); // 直接new一个 var tmp = Array(); // 或者new也可以 在new数组的时候可以传入一个参数,表示数组的初始化长度 ...
Array对象除了提供了constructor、length和prototype外,还默认提供了13个方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString 、unshift和valueOf,可是没有提供...
JS中我们可以通过pop方法移除数组的最后一个元素,可以通过shift方法移除数组的第一个元素 <!DOCTYPE html> <html> <body> Click the button to remove the first element of the array. <...
在入门Vue时, 列表渲染一节中提到数组的变异方法, 其中包括push(), pop(), shift(), unshift(), splice(), sort(), reverse(), 而concat()和slice()不属于变异方法. 在这里就复习一下Array所提供的这几个方法的使用
shift():删除数组的第一个元素,返回被删除的元素 unshift(val):数组的开头添加新的元素,返回操作完成后数组的长度 [removed] var arr = [1,2,3,4] // 在数组末尾添加元素 arr.push(5) console.log(arr) // ...
JavaScript权威指南 犀牛书 Chapter 1. Introduction to JavaScript Section 1.1. JavaScript Myths Section 1.2. Versions of JavaScript ... Array.shift( ) Array.slice( ) Array.sort( ...
array.pop 移除数组最后一个元素,并返回这个元素.var A=arrA.pop(); array.push 将一个或多个参数附加到数组的尾部,并返回一个新长度值。arrA.push(“asd”); array.shift 移除数组的第一个元素,并返回这个元素