首页 > 其他分享 >鸿蒙开发 四十九 数组

鸿蒙开发 四十九 数组

时间:2024-10-20 17:19:14浏览次数:7  
标签:返回 鸿蒙 元素 四十九 参数 数组 Array 下图

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

相关文章

  • 六,数组笔记及相关练习题大全
    Java编程基础:数组详解在Java编程中,数组是一块连续固定大小的内存空间,用于存储相同类型的多个元素。数组提供了索引的概念,允许通过索引访问和操作数组中的元素。本文将详细探讨Java中数组的定义、初始化、使用和示例。数组的定义和初始化数组在定义时需要指定数据类型和数组名。......
  • 轮转数组——力扣189题
    力扣189题轮转数组,本身很简单,但是反复提交很多次都没有成功,实在是让人难以启齿,分析应该还是概念不清晰导致的,自以为理解得很清楚,实际确实模棱两可。把数组后几个移动到前面的位置上去,按照我最开始的想法,不过就是切片,把后半部分切下来,形成的两个半个数组再加起来不就是了吗?在py......
  • 提取并排序数组中的偶数
    题目:提取并排序数组中的偶数题目描述:给定一个整数n和一个包含n个整数的数组,编写一个程序提取数组中的所有偶数,并按升序排序后输出。输入格式:第一行包含一个整数 n (1≤ n ≤100,000),表示数组的元素个数。第二行包含 n 个整数,表示数组中的元素。每个整数的绝对......
  • 第7讲:数组
    文章目录1.数组的概念2.⼀维数组的创建和初始化3.一维数组的使用4.一维数组在内存中的存储6.⼆维数组的创建7.二维数组的初始化8.二维数组的使用9.二维数组在内存中的存储10.C99中的变长数组11.数组练习1.数组的概念2.⼀维数组的创建和初始化3.⼀维数......
  • 树状数组——原理详解
    前言这两天在网上学树状数组,但是发现网上关于树状数组的解释大都对初学者不太友善,原理讲解部分并不是很容易理解,所以写了一篇树状数组,顺便帮自己巩固一下。一、什么是树状数组1.概念:简单来说,这是一种数据结构。顾名思义,它通过树的结构来对数组进行高效操作,一般用于求数组前缀......
  • 二维数组1019
    publicclassPlaceDemo{publicstaticvoidmain(String[]args){//班级学生座位(二维数组)place();pace();}publicstaticvoidplace(){//静态初始化数组-----数据类型[][]数组名=new数据类型[]{元素1,元素2,元素3,··......
  • 数组练习1018
    假设班级有8名学生,录入8名学生的java成绩,成绩类型是小数,并输出平均分,最高分,最低分publicclassClassDemo2{publicstaticvoidmain(String[]args){//假设班级有8名学生,录入8名学生的java成绩,成绩类型是小数,并输出平均分,最高分,最低分studentSc......
  • 数组与字符串
    数组一维数组构造的数据类型之一,由若干数据类型相同的元素组成。其中数组名是地址常量不可修改,所以不能赋值操作,sizeof(数组名)求总内存空间。特点:数组不赋初始值,随机生成static修饰,默认位0部分赋值,其余默认为0//验证以上#include<iostream>usingnamespacestd;i......
  • 代码随想录算法训练营day20| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树
    学习资料:https://programmercarl.com/0669.修剪二叉搜索树.html#算法公开课学习记录:669.修剪二叉搜索树(直接在原函数上操作,要根据情况用root的左右子树递归,因为子树中有满足条件的;前序:根左右)点击查看代码#Definitionforabinarytreenode.#classTreeNode:#def_......
  • 鸿蒙ArkWeb 组件多媒体探究:从视频到音频
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言ArkWeb是华为鸿蒙系统提供的一......