<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
/*
javascript---数组Array
定义方式如下:
var arr = [];//初始化一个空长度的数组
var arr = new Array();//内存
1:数组下标都是从0开始,也就是说数组里面的第一个元素就是
2:数组的长度是:.length
3:第一个元素:arr[0] = "xxx"; 最后一个元素:arr[length-]="xxx"
4:当一个数组下标越界的时候,返回undefined
5:toString()转成字符串
6:数组的push()方法是:追加到数组的最后面
7:join()改变数组的分隔符
8:shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
9:pop() 方法用于把数组的最后一个元素从其中删除,并返回最后元素的值
10:slice(start,end);start:下标 end截取的个数(或者是start+1)
11: arr6.sort(function(a,b){//升序
return b - a;
});
//降序
arr6.sort(function(a,b){
return a - a;
})
*/
//第一种方式定义一个空数组
var arr = [];
//第二种定义了一个有值的数组
var arr2 = [1,3,4,5,6];
//alert(arr2[4]);
//第三种定义方式:先定义后赋值的数组
var arr3 = [];
arr3[0] = "xiaoer";
arr3[1] = "呵呵";
/************************************************/
/*********************给数组中添加元素--push***************************/
var arr5 = ["xiaoer","KID","哈哈","白羊"];
//alert("数组push之前的长度是:"+arr5.length+"值是:"+arr5.toString());
arr5.push("IOY");
arr5.push("简简单单");
//alert("数组push之后的长度是:"+arr5.length+"值是:"+arr5.toString());
/*********************数组中的逗号变为其他字符--join***************************/
var arr6 = ["1","2","3","4","5","6"];//把逗号变为特殊字符
//alert("数组join之前是用逗号分开的:"+arr6.toString());
//alert("数组join之后是用#分开的:"+arr6.join("#").toString());
/*********************数组的删除第一个元素--shift***************************/
var arr7 = ["1","2","3","4","5","6"];
//alert("数组shift之前的值是:"+arr7.toString()+"长度:"+arr7.length);
var value = arr7.shift();
//alert(value);
//alert("数组shift之后值的是:"+arr7.toString()+"长度:"+arr7.length);
/*********************数组的删除最后一个元素并返回最后的值--pop***************************/
var arr8 = ["1","2","3","4","5","6"];
//alert("数组pop之前的值是:"+arr8.toString()+"长度:"+arr8.length);
var value = arr8.pop();
//alert(value);
//alert("数组pop之后值的是:"+arr8.toString()+"长度:"+arr8.length);
/*********************数组截取--slice***************************/
//splice(start,end);start:开始截取的下标 end结束截取的下标
var arr9 = [1,2,3,4,5,6,7,8,9,0];
alert(arr9.slice(2,1));
/*********************数组元素添加,删除,替换--splice***************************/
//splice(start,count,end);start:下标 end截取的个数
var arr9 = [1,2,3,4,5,6,7,8,9,0];
alert(arr9.splice(2,0,"100"));//2代表索引为2的位置,0为插入的元素100所占有的空间,100为插入的元素
/*********************数组的合并--concat***************************/
var carr = [1,2,5,7];
var larr = [1,8,9,2,200];
var car2 = larr.concat(carr);
//alert(typeof carr);
//alert(typeof car2.toString());
/*数组扩展了:indexOf,去重,合集,并集,交集,包含*/
var tmArray= {
each : function(arr,fn){
fn = fn || Function.K;
var a = [];
var args = Array.prototype.slice.call(arguments, 1);
for(var i = 0; i < arr.length; i++){
var res = fn.apply(arr,[arr[i],i].concat(args));
if(res != null) a.push(res);
}
return a;
},
map : function(arr,fn,thisObj){
var scope = thisObj || window;
var a = [];
for ( var i=0, j=arr.length; i < j; ++i ) {
var res = fn.call(scope, arr[i], i, this);
if(res != null) a.push(res);
}
return a;
},
orderBy : function(array,sortFlag){
var $arr = array;
if(sortFlag=='asc'){
$arr.sort(this._numAscSort);
}else if(sortFlag=='desc'){
$arr.sort(this._numDescSort);
}else{
$arr.sort(this._numAscSort);
}
return $arr;
},
// 姹備袱涓泦鍚堢殑骞堕泦
union : function(a, b){
var newArr = a.concat(b);
return this.unique2(newArr);
},
// 姹備袱涓泦鍚堢殑琛ラ泦
complement :function(a,b){
return this.minus(this.union(a,b),this.intersect(a,b));
},
// 姹備袱涓泦鍚堢殑浜ら泦
intersect : function(a,b){
a = this.unique(a);
return this.each(a,function(o){
return b.contains(o) ? o : null;
});
},
//姹備袱涓泦鍚堢殑宸泦
minus : function(a,b){
a = this.unique(a);
return this.each(a,function(o){
return b.contains(o) ? null : o;
});
},
max : function(arr){
return Math.max.apply({},arr) ;
},
min : function(arr){
return Math.min.apply({},arr) ;
},
unique :function(arr){
var ra = new Array();
for(var i = 0; i < arr.length; i ++){
if(!ra.contains(arr[i])){
//if(this.contains(ra,arr[i])){
ra.push(arr[i]);
}
}
return ra;
},
unique2 : function(arr){
for ( var i = 0; i < arr.length; i++) {
for ( var j = i + 1; j < arr.length;) {
if (arr[j] == arr[i]) {
arr.splice(j, 1);
} else {
j++;
}
}
}
return arr;
},
indexOf : function(arr,val){
for ( var i = 0; i < arr.length; i++) {
if (arr[i] == val)
return i;
}
return -1;
},
contains : function(arr,val){
return this.indexOf(arr,val) !=-1 ? true : false;
},
remove : function(arr,index){
var index = this.indexOf(arr,index);
if (index > -1) {
arr.splice(index, 1);
}
return arr;
},
removeObject : function(arr,item){
for ( var i = 0; i < arr.length; i++) {
var jsonData = arr[i];
for ( var key in jsonData) {
if (jsonData[key] == item) {
arr.splice(i, 1);
}
}
}
return arr;
},
toArray : function(arrString,sp){
if(sp==undefined)sp=",";
if(arrString==undefined)return this;
var arrs = arrString.split(sp);
return arrs;
},
_numAscSort :function(a,b){
return a-b;
},
_numDescSort :function(a,b){
return b-a;
},
_sortAsc : function(x, y){
if(x>y){
return 1;
}else{
return -1;
}
},
_sortDesc : function (x, y){
if(x>y){
return -1;
}else{
return 1;
}
}
};
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
}
var arr6 = ["11","11","22","3","3","4","5","6"];
/*tmArray.each(arr6,function(i){
alert(i);
});
var arr11 = tmArray.orderBy(arr6,"asc");
alert(arr11.toString());*/
alert(tmArray.unique(arr6));
alert(tmArray.indexOf(arr6,"11"));
alert(tmArray.min(arr6));
alert(tmArray.max(arr6));
//inner/outerText/HTML 针对有结束符的标签,如span,div这些标签,如input这种标签的话,不合适
</script>
</body>
</html>
js、 数组
最新推荐文章于 2024-05-16 18:05:18 发布