代码如下:Ext.applyIf(Array.prototype, { /** * Checks whether or not the specified object exists in the array. * @param {Object} o The object to check for * @param {Number} from (Optional) The index at which to begin the search * @return {Number} The index of o in the array (or -1 if it is not found) */ indexOf : function(o, from){ var len = this.length; from = from || 0; from += (from < 0) ? len :...
数组的创建 第一种: 代码如下:var colors = new Array(); var colors = new Array(20);//创建包含20项的数组 var colors = new Array("Greg");//创建包含1项,即字符串"Greg"的数组 var colors = new Array("red","blue","green"); //创建包含3项 第二种: 代码如下:var colors = ["red","blue","green"]; var colors = [];//创建一个空数组 注意:数组的索引是从0开始的 1. length属性 length属性中保存数组的项数,如: 代...
先贴出完整代码. 代码如下:<script type="text/javascript"> function StringBuffer() { this._strings = new Array(); } StringBuffer.prototype.append = function(str) { this._strings.push(str); //StringBuffer.prototype.length = this._strings.length;//每多一行,就会多消耗处理时间 var i = "asdfasdf"; } StringBuffer.prototype.toString = function() { this._strings.join(""); } /*String类 + 号累加*/ var d = n...
代码如下: Array.prototype.each = function(fn) { return this.length ? [fn(this.slice(0,1))].concat(this.slice(1).each(fn)) : []; }; [1,2,3,4].each(function(x){ document.write(x + "<br/>"); });
创建Array对象 代码如下://one var aValues=new Array(); //two var aValues=new Array(20); //three var aColors=new Array(); aColors[0]="red"; aColors[1]="green"; aColors[2]="blue"; //four var aColors=new Array("red","green","blue"); //five var aColors=["red","green","blue"]; join && split join:连接字符串 代码如下:var aColors=["red","green","blue"]; alert(aColors.join(","));//outputs "red,green,blue...
代码如下:/*! * jLip JavaScript Library v0.1 * * Copyright 2012, Lip2up (lip2up@qq.com) * Just for free use, NO LICENSE */ (function() { function extend(target, props) { for (var m in props) { if (target[m] === undefined) target[m] = props[m]; } } var fns = { every: 1, some: 2, forEach: 3, map: 4, filter: 5 }, reduceError = Reduce of empty array with no initial value; function each(fn, _this, kind)...
如何用 JavaScript 将 [1,2,3,[4,5, [6,7]], [[[8]]]] 这样一个 Array 变成 [1,2,3,4,5, 6,7,8] 呢?传说中的 Array Flatten。 处理这种问题,通常我们会需要递归,来让程序自己按照一种算法去循环。在某书说写着,“递归是一种强大的编程技术”,好吧,她不仅仅属于 JavaScript。递归可以很难,也可以比较简单(总得来说还是比较难)。处理上面这个问题,用递归来解决,应该是比较适合的。之前工友这样实现了,算是一个简单的递归...
当时我在分享会,想试试,但身边没有电脑。今天打开 Firebug 的那一瞬间,突然记起这事。马上试了一下之前想的一个方案。可以!代码如下: 代码如下:function a(){ var arr = Array(arguments); alert(arr instanceof Array); } a(b); 在看 Baidu Tangram 的时候,最常看到的是 String(a string),不像其实地方的用法,是使用与一个空字符串字面量相加来强制类型转换。当时,就想到了如果 Array() 可以实现,那不是更爽?当然。而...
注意: JavaScript 中数组不是 关联数组。 JavaScript 中只有对象 来管理键值的对应关系。但是关联数组是保持顺序的,而对象不是。 由于 for in 循环会枚举原型链上的所有属性,唯一过滤这些属性的方式是使用 `hasOwnProperty` 函数,因此会比普通的 for 循环慢上好多倍。 遍历(Iteration) 为了达到遍历数组的最佳性能,推荐使用经典的 for 循环。 代码如下:var list = [1, 2, 3, 4, 5, ...... 100000000]; for(var i = 0, l = l...
这个排序是进行两两比较。 拿这个数组进行降序排列var a = [3, 1, 5, 6, 4, 2]; 第一轮比较:用第一个数值和本数组的其他元素进行比对 3比1 3比5 //5大,所以所以进行交换 得a = [5, 1, 3, 6, 4, 2]; 5比6 //交换 得a = [6, 1, 3, 5, 4, 2]; 6比4 6比2 第一轮最终结果 a = [6, 1, 3, 5, 4, 2]; 第二轮比较:用第二个数值和这个数值之后的元素进行对比 1比3 //交换 得a = [6, 3, 1, 5, 4, 2]; 3比5 //交换 得a = [6, 5, 1, 3, 4, 2]...
从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。 测试环境的主要硬件:CPU T7100(1.8G);内存4G DDR2 667;硬盘5400转。主要软件:操作系统为Windows 7;浏览器为Firefox 3.6.9。测试代码: 代码如下:var arr = [ ], s = +new Date; // push性能测试 for (var i = 0; i < 50000; i++) { arr.push(i); } console.log(+new Dat...
说它是一个动态数组,是因为动态的添加数据; 代码如下:var myarr = new Array(); myarr[0] = 1; myarr[1] = 2; myarr[2] = 3; myarr[3] = 23; myarr[4] = 11; 使用for进行遍历; 说它是一个字典对象,是因为他可以以键值的形式进行访问: 代码如下:var dictionary = new Array(); dictionary["谢龙宝"] = "xielongbao"; dictionary["周保翠"] = "zhoubaocui"; dictionary["谢晓月"] = "xiexiaoyue"; alert(dictionary["谢龙宝"...
不过在学脚本prototype.js的过程中发现有些方法我们很少用到,但是有些方法好像很经典,脚本库在不断的加大,眼前一片...继续我们JS入门,今天学习一下Array数组。 首先我们来看看它的定义: 代码如下:var arrayObj = new Array() var arrayObj = new Array([size]) var arrayObj = new Array([element0[, element1[, [, elementN]]]]) 其中:arrayObj是赋值为 Array 对象的变量名。 size由于数组的下标是从零开始,创建...
代码如下:Array.prototype.del=function(){ var b={},c,i=0,l=this.length,j; for(;i<l;i++){ c=this.shift(); c in b ? b[c]++ : b[c]=0; } for(j in b){ if(b[j]>0)this.push(+j||j); } return this; } var a=[1,2,2,3,3,3,a,b,b]; alert(a.del()); 果果的去重方法 代码如下:Array.prototype.del=function(){ return (function (i, n, j, u, o){ for (; i < j; i++) { o = this[i]; o in u ? 0 : (u[this[n++] = o] = 1) } thi...
从无忧脚本收集过来的,有些的确还不错,比较实用,值得收藏一下。 扩展Array的原型对象的方法 代码如下:// 删除数组中数据 Array.prototype.del = function(n) { if (n<0) return this; return this.slice(0,n).concat(this.slice(n+1,this.length)); } // 数组洗牌 Array.prototype.random = function() { var nr=[], me=this, t; while(me.length>0) { nr[nr.length] = me[t = Math.floor(Math.random() * me.length)]; me = m...