1、数组的创建方式
数组:接口范型的形式提供,接口的源码是:interface Array<T>,实际开发中数组用得非常多,创建数组的方式有:
1、语法格式:let 数组名:Array<数组类型> = [],实例:let arr1:Array<IObject> = [],这里申明IObject 的数组,
2,new关键字创建数组,语法格式:let 数组名字:Array<数组类型> = new Array<数组类型>(),实例let arr2:Array<IObject> = new Array<IObject>()
3,Array.from方式创建,语法格式为:let 数组名字:Array<数组类型> = Array.from(数组),实例为:let arr3:Array<IObject> = Array.from(cityNameList),
2、数组的方法和属性
length属性,返回数组的长度,例如:
创建了arrCity数组,类型是是IObject,数组的长度是4,
toString方法,这个方法返回的是字符串,如果数组是Number、String类型的,直接打印出数组里面的值,如果是Object类型的,打印出来的是Object,如果要想打印出Object的值,则需要转换为JSON对象方法为:JSON.stringify(arr),
toLocaleString这方法在中文环境下河toString一样,在别的语言环境就输出别的语言的字符串
pop 移除数组的最后一个元素并返回最后一个元素的,原数组元素减少一个
push 往数组末尾添加元素,可以是一个,也可以是多个,返回的是新数组的长度,例如:
数组arrStr2调用了push方法添加了20000333,20000,1,2,3,4,打印出来的结果是:
concat 合并两个或者是更多的数组,返回的是合并后的新数组:
这里arrStr1和arrStr2合并到arrStr3并返回新数组newArr,元素分别是:1,2,3,4,arrStr21,arrStr22,arrStr23,arrStr24这里的arrStr3仍然是空数组。
join 数组的额元素按照指定的字符串连接,返回字符串,下图,数组arrStri1调用了join("and"),输出结果是:1and2and3and4
reverse() 数组元素位置完全对称调换,返回的数组引用和原数组一样,调用这个方法的数组元素位置调换了,如下图:打印arrStr1和arrStr1Reverse数组的元素都是 4,3,2,1
shift() 移除数组的第一个元素并返回,如果是空数组返回undefined 原数组不被修改,下图,打印出的结果分别是1 和 2,3,4
splice 从原数组中切一段成为新数组,第一个参数是起始位置,第二个参数是需要切几个元素,下图,arrStr1.splice(1,3),表示从2开始往后切3个元素2,3,4组成新的数组arrStr1slice,当然,这里的3改成100也不会报错,但也只能切出2,3,4三个元素,原来的数组变成了只有1这么一个元素的数组
unshift 在数组的开头处插入,返回的是插入后数组的长度,参数是...items,参数个数不定,参数是数组的items,下图, arrStr1变成了 5,6,7,8,0000000,lkkkk,1,2,3,4,长度为7
indexOf返回数组中指定对象第一次出现的索引,如果数组中不存在对象,返回-1,下图,indexOf(1)
输出0,indexOf(12)输出-1
lastIndexOf 返回数组中最后一个元素的索引,不存在返回-1,下图,最后一个1显示的位置是2,因为12没有在数组中,所以显示-1,
every 检测数组每一个元素的一致性,如果每一个元素都一致,返回true,其中之一不一致,返回false,不再遍历,不会对数组内容做修改,下图,首先对数组每一个元素做了parseInt判断,都是number,返回true,原数组内容没有修改,第二次对数做了空判断,因为元素没有空的,所以返回false
some 和every是一样的,用法也是一样的,api的封装也是一样的,下图对比:
forEach遍历数组,需要的参数是回调函数,下图,函数里面的参数都是可选的,需要的值传给回调函数,通过回调函数返回,下图三种方式最常用:
map,这个方法和forEach的区别就是能返回数组,这里虽然返回的是数组,但是用一个变量数组接收后,里面的元素是空的,通过回到返回是有值得,这不就和forforEach一样了呗,下图:arrMapTest4没有元素,arrMapTest是有元素的,和arrStr1一样
reduce 返回数组指定元素的累加结果,参数是回调函数和初始值,回调函数四个参数,分别是前一个值、当前值、当前元素索引、数组,下图,计算水果数组arrFrute的总价格,调用了reduce函数,为了验证结果,初始值传的是3,把初始值改为0之后算出的结果是8
reduceRight从后往前计算 参数和reduce一样
filter把符合条件的元素从数组中删除并返回一个新数组,下图,删除了price为2的数组
indexOf获取元素在数组中的索引值,下图,获取第二个对象的索引值是1
lastIndexOf 最后一个元素的所有值,下图,获取2在数组中最后的索引值是4
sort 数组排序 参数是回调函数,回调函数是两个比较的值,返回number类型,返回的数组和原数组是同一个引用,下图,数组arrNum升序排列,降序改为b-a,
下图是水果按升序排列,如果是降序改为b.price-a.price
标签:返回,鸿蒙,元素,四十九,参数,数组,Array,下图 From: https://blog.csdn.net/renfujiang/article/details/143083641