数组去重,排序
function distinctAry(ary){
var obj={};
for(var i=0;i<ary.length;i++){
var cur=ary[i];
if(obj[cur]!=cur){
obj[cur]=cur;
}else{
ary.splice(i,1);
i--;
}
}
obj=null;
return ary;
}
distinctAry(ary);
function sortAry(ary){
var temp=null;
for(var i=0;i<ary.length-1;i++){
for(var j=0;j<ary.length-1-i;j++){
if(ary[j]>ary[j+1]){
temp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
}
}
return ary;
}
sortAry(ary);
console.log(ary);
在数组Array内置类的原型链上定义一些方法,我们知道每一个数组类型数据都是Array类的一个实例,也就是说每一个数组就可以拥有原型上的方法了
var ary=[1,232,23,2,23,4,1234,7,5];
Array.prototype.distinct=function(){
var obj={};
for(var i=0;i<this.length;i++){
var cur=this[i];
if(obj[cur]!=cur){
obj[cur]=cur;
}else{
this.splice(i,1);
i--;
}
}
obj=null;
return this;
}
Array.prototype.sortAry=function(){
var temp=null;
for(var i=0;i<this.length-1;i++){
for(var j=0;j<this.length-1-i;j++){
if(this[j]>this[j+1]){
temp=this[j];
this[j]=this[j+1];
this[j+1]=temp;
}
}
}
return this;
}
ary.distinct().sortAry();
console.log(ary);
/*根据值删除数组中元素*/
Array.prototype.deleteElementByValue = function (varElement) {
var numDeleteIndex = -1;
for (var i = 0; i < this.length; i++) {
// 严格比较,即类型与数值必须同时相等。
if (this[i] === varElement) {
this.splice(i, 1);
numDeleteIndex = i;
break;
}
}
// return numDeleteIndex;
return this;
}
ary.deleteElementByValue(7); //从数组中删除7
console.log(ary);
/*查某个值在数组中的索引*/
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
return this;
};
ary.indexOf (3);
ary.remove (3);
/*根据值 判断数组中是否有该值的元素*/
Array.prototype.S = String.fromCharCode(2);
Array.prototype.inAry = function (e) {
var r = new RegExp(this.S + e + this.S);
return (r.test(this.S + this.join(this.S) + this.S));
}
ary.inAry(6)