JavaScript数组操作
2021-05-17 12:29
标签:pop dex 索引 基类 asc 集合 foreach ice 引号 本文非原创,原出处:https://blog.csdn.net/luanpeng825485697/article/details/77009182 自定义数组原型函数,实现为所有数组添加功能 JavaScript数组操作 标签:pop dex 索引 基类 asc 集合 foreach ice 引号 原文地址:https://www.cnblogs.com/Best-Chen/p/9746655.html数组操作全解
js变量类型
1 var string;
2 //underfined、null、boolean、string、number为基本数值类型。逗号一并定义初始化多个变量。基本包装类型String、Boolean、Number通过valueOf()可以获取基本数值类型,可以实现自动装箱和拆箱操作。
3 var name = "student",age=12;
数组的定义
1 var names=[]; //定义数组并初始化为空
2 names = ["小明","小红","小刚"]; //赋值,可以在定义时赋值
3 names = new Array(); //定义数组并初始化为空
4 names=new Array(names.length); //数组基类为Array,属性length为数组长度
5 names = new Array(‘小明‘,‘小红‘,‘小刚‘); //字符串不区分单双引号,只要配对使用就行
增删查改
1 //元素增加
2 names[4]="小胡"; //通过赋值,直接添加了两项,null和“小胡”
3 names.unshift("小李","小兰"); //首部添加
4 names.push("小李","小兰"); //末尾添加
5
6 //元素删除
7 var item = names.pop(); //删除获取最后一项
8 item=names.shift(); //删除获取第一项
9 names.splice(2,1,"小季","小明"); //删除添加数据,修改源数组,第一个参数表示开始删除的位(包含),第二个参数表示要删除的数目,后面参数表示在删除位置处添加的元素
10
11 //元素读取查找
12 var nameitem=names[2]; //使用[]读取数组,这是最简单的读取方式
13 names = names.slice(-4,6); //读取数组段,不修改源数组,负数表示从右向左数,-1表示末尾第一个元素,0表示首部第一个元素。只有一个参数时表示直到末尾。读取索引包含第一个参数不包含第二个参数
14 names.indexOf("小明"); //查找匹配元素的位置,没有找到返回-1,lastindexof表示最后匹配的位置。
15
16 //数组的拼接和字符串表示
17 names=names.concat("小王",["小明","小黑"]); //拼接数组,不修改源数组,所以要赋值
18 var str=stringnames.join(","); //使用间隔字符串连接数组
遍历
1 var boolresult = names.every(function(item,index,array){ //对数组中元素每一项进行布尔运算,返回false和true。every函数,全部元素返回true时返回true。some函数某一元素返回true时返回true
2 return (index>2);
3 });
4 var nameresult = names.filter(function(item,index,array){ //返回数组,filter函数获取满足条件的项,map函数获取每一项计算值的集合,不改变原数组,forEach函数等价于for语句,对每项处理
5 return (index>2);
6 });
7 nameresult = names.reduce(function(prev,cur,index,array){ //reduce从前向后迭代,reduceRight从后向前迭代。
8 return prev+"+"+cur; //迭代从第二项开始,prev初始值为第一项,cur初始值为第二项。计算值自动传给下一函数的prev,返回最后一次迭代产生的值
9 });
排序
1 names.reverse(); //数组取反
2 names.sort(); //数组排序sort(compare),参数可为排序函数,空元素将排到最后
3 function compare(student1,student2){ //比较函数,返回-1,0,1
4 //return student1.age
数组原型
1 function array_max( )
2 {
3 return Math.max.apply(Math,this); //max取最大值,min取最小值。还有很多数学运算
4 }
5 Array.prototype.max = array_max; //重写数组原型链
6 var x = new Array(1, 2, 3, 4, 5, 6); //应用自定义原型函数
7 var y = x.max( );