全面解析js数组操作全面

  • 2
  • 38 views
  • A+
所属分类:JS、JQuery 编程技术

数组操作全解

js变量类型

1
2
var string;
var name = "student",age=12;

underfined、null、boolean、string、number为基本数值类型。逗号一并定义初始化多个变量。基本包装类型String、Boolean、Number通过valueOf()可以获取基本数值类型,可以实现自动装箱和拆箱操作。

数组的定义

1
2
3
4
5
6
7
8
9
10
var names=[];                           
//定义数组并初始化为空
names = ["小明","小红","小刚"];           
//赋值,可以在定义时赋值
names = new Array();                    
//定义数组并初始化为空
names=new Array(names.length);          
//数组基类为Array,属性length为数组长度
names = new Array('小明','小红','小刚');  
//字符串不区分单双引号,只要配对使用就行

增删查改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//元素增加
names[4]="小胡";                         
//通过赋值,直接添加了两项,null和“小胡”
names.unshift("小李","小兰");             
//首部添加
names.push("小李","小兰");                
//末尾添加
 
//元素删除
var item = names.pop();                  
//删除获取最后一项
item=names.shift();                      
//删除获取第一项
names.splice(2,1,"小季","小明");          
//删除添加数据,修改源数组,第一个参数表示开始删除的位(包含),第二个参数表示要删除的数目,后面参数表示在删除位置处添加的元素
 
//元素读取查找
var nameitem=names[2];                  
//使用[]读取数组,这是最简单的读取方式
names = names.slice(-4,6);              
//读取数组段,不修改源数组,负数表示从右向左数,-1表示末尾第一个元素,0表示首部第一个元素。只有一个参数时表示直到末尾。读取索引包含第一个参数不包含第二个参数
names.indexOf("小明");                    
//查找匹配元素的位置,没有找到返回-1,lastindexof表示最后匹配的位置。
 
//数组的拼接和字符串表示
names=names.concat("小王",["小明","小黑"]);
 //拼接数组,不修改源数组,所以要赋值
var str=stringnames.join(",");            
//使用间隔字符串连接数组

遍历

1
2
3
4
5
6
7
8
9
10
11
12
13
var boolresult = names.every(function(item,index,array){   
//对数组中元素每一项进行布尔运算,返回false和true。every函数,全部元素返回true时返回true。some函数某一元素返回true时返回true
    return (index>2);
});
var nameresult = names.filter(function(item,index,array){   
//返回数组,filter函数获取满足条件的项,map函数获取每一项计算值的集合,不改变原数组,forEach函数等价于for语句,对每项处理
    return (index>2);
});
nameresult = names.reduce(function(prev,cur,index,array){   
//reduce从前向后迭代,reduceRight从后向前迭代。
    return prev+"+"+cur;                                    
//迭代从第二项开始,prev初始值为第一项,cur初始值为第二项。计算值自动传给下一函数的prev,返回最后一次迭代产生的值
});

排序

1
2
3
4
5
6
7
8
9
10
11
names.reverse();                        
//数组取反
names.sort();                          
 //数组排序sort(compare),参数可为排序函数,空元素将排到最后
function compare(student1,student2){    
//比较函数,返回-1,0,1
    //return student1.age<student2.age?-1:(student1.age==student2.age?0:1);  
//-1表示前对象小,1表示后对象小,0表示相等
    return student2.age-student1.age;  
//正数自动转化为1,负数转化为-1
}

数组原型
自定义数组原型函数,实现为所有数组添加功能

function array_max( )
{
    return Math.max.apply(Math,this);    
//max取最大值,min取最小值。还有很多数学运算
}
Array.prototype.max = array_max;         
//重写数组原型链
var x = new Array(1, 2, 3, 4, 5, 6);     
//应用自定义原型函数
var y = x.max( );
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • avatar 小猴子 4

      666牛逼

      • avatar 小猴子 4

        好像很厉害的样子