js array属性方法
array.pop : 删除数组内的最后一个对象
array.shift :删除数组内的第一个对象
array.join: 数组内元素弄成字符串插入页面
array.reverse : 数组内元素倒置
array.concat : 数组合并,但是谁与谁合并,要注意顺序
array.toString : 数组直接转为字符串,不再是对象了
array.valueOf : 显示原始的值,里面有什么东西
array.sort : 以ascii代码来排列先后顺序,但是数字不能用sort去排列。要排序请往下看,有例子哦。
array.push : 数组末端添加新对象,返回显示是数组长度
array.slice :删除数组内对象 slice( start , end)
array.splice : 删除添加对象
array.unshift : 前面插入对象,返回显示是数组长度
array.indexOf: 检查对象是否存在
下面来显示一些例子,让我们能够更明白是如何用的,计算机又是如何操作的。
var bb = ['qq','aa','ss','ee'];
var ooo = ['Nov','August'];
alert(bb.indexOf('qq'));// 返回0,因为qq是数组内的一个对象,位置是0
alert(bb.pop());//返回ee
alert(bb.shift());//返回qq
alert(bb.join( and ));//返回qq and aa and ss and ee
alert(bb.toString());// 返回qq,aa,ss,eealert(bb.valueOf());//返回qq,aa,ss,ee
alert(bb.sort());//返回aa,ee,qq,ss
alert(bb.push("Lemon","Pineapple"));//返回6,因为数组已有六个对象,分别是:qq,aa,ss,ee,Lemon,Pineapple
alert(bb.slice(0,2));//返回qq,aa
alert(bb.splice(1,3,'lemon'));//返回aa,ss,ee,从aa起删除,除去长度为:三个
alert(bb.unshift('sunny'));//返回5,因为数组增加了一个对象,便由4变成了5
alert(bb.concat(ooo));//返回qq,aa,ss,ee
alert(bb.reverse());//返回ee,ss,aa,qq,Nov,August
其实只要多练练就知道这些是怎么使用的了,多练习是灵活使用的前提。
数字排序,使用sort()方法,例子如下:
var foo = [1,12,15,54,56,89,123,78];
function num(a,b) {
return a - b;
}
alert(foo.sort(num));// 返回1,12,15,54,56,78,89,123
现在就试试吧!
3:push 方法向Array中添加一条记录
var totalUsers = new Array(); function PushItem(name, departmemt) { var currentUser = new Object(); currentUser.UserName = name; currentUser.Department = departmemt; totalUsers.push(currentUser); }
4:pop 方法从Array的栈中弹出最上面的那条记录
var totalUsers = new Array(); var user1 = new Object(); user1.UserName = "haha"; user1.Department = "hahahaha"; var user2 = new Object(); user2.UserName = "lolo"; user2.Department = "lolololo"; totalUsers.push(user1); totalUsers.push(user2); totalUsers.pop(); //totalUsers中会剩下user1,因为user2在栈的最上方,被弹出
5:splice 方法从Array中删除指定的某条或者多条记录
var totalUsers = new Array(); totalUsers.push(...); function SpliceItem(name) { for (var i = 0; i < totalUsers.length; i++) { if (totalUsers[i].UserName == name) { totalUsers.splice(i, 1) } } }
输出重复数组元素
// 方法一,正则判断------本人已经测试过,其他的没有测试过。 var ary = new Array("111","ff","222","aa","222"); alert(mm(ary)) // 验证重复元素,有重复返回true;否则返回false function mm(a) { return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f"+a.join("\x0f\x0f") +"\x0f"); } // 方法二,通过数组排序,比较临近元素,可指出重复的元素 var ary = newArray("111","22","33","111","22"); var nary = ary.sort(); for(var i = 0; i < nary.length - 1; i++) { if (nary[i] == nary[i+1]) { alert("重复内容:" + nary[i]); } } // 方法三,通过字符串查找 var ary = newArray("111","22","33","111","22"); var s = ary.join(",") +","; for(var i = 0; i < ary.length; i++) { if(s.replace(ary[i] + ",", "").indexOf(ary[i] +",") > -1) { alert("重复内容:" + ary[i]); } } // 方法四,通过哈希 var ary = newArray("111","22","33","111","22"); alert(isRepeat(ary)); // 验证重复元素,有重复返回true;否则返回false function isRepeat(arr) { var hash = {}; for(var i in arr) { if(hash[arr[i]]) { return true; } // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可 hash[arr[i]] = true; } return false; }
去除重复数组元素
var arr = ['a','b','c','d','c','a']; var new_arr = []; for(var i=0;i<arr.length;i++) { var items=arr[i]; //判断元素是否存在于新数组new_arr中,如果不存在则插入到数组new_arr的最后 if($.inArray(items,new_arr)==-1) { new_arr.push(items); } } console.log(ids); //Array(4)['a','b','c','d']
jQuery 删除指定数组元素'c'
var ids = ['a','b','c','d']; ids.splice($.inArray("c",ids),1); //$.inArray("c",ids)返回元素'c'所在位置,splice(从c的位置开始,删除元素个数)