前言:
此时朋友们对“js中定义list”都比较关怀,小伙伴们都需要剖析一些“js中定义list”的相关内容。那么小编也在网络上收集了一些有关“js中定义list””的相关文章,希望我们能喜欢,咱们一起来了解一下吧!#头条创作挑战赛#
本文同步本人掘金平台的文章:
推荐使用线上编辑器 dartpad.cn 或者 dartpad.dev 进行学习,测试~
Dart 中的集合类,允许以各种方式将元素分组,并定义各种使这些元素更容易操作的方法。本文,我们来认识相关的集合类。
集合的作用
集合有以下的作用:
对数据进行组织简单快捷搜索大数量的数目有的集合提供了排序的元素,可以在序列中快速插入或者删除元素有的集合提供了映射接口,可以快速查找元素Dart 中的集合
Dart 中重要有以下的集合:
List:存储一组不唯一且按插入顺序排序的对象,可以操作索引(可以理解为 JavaScript 中的数组) -Set:存储一组唯一且无序的对象(可以理解为字典)Map:key - value 键值对的形式存储数据,key 是唯一的(可以理解为 JavaScript 中操作的键值对)List 集合
List 是一组有序元素的集合,数据元素可以不唯一。
List 中的常用属性有:
属性
描述
length
List 的长度
reversed
反转 List
isEmpty
判断 List 是否为空
isNotEmpty
判断 List 是否不为空
void main() { handleList();}void handleList() { // 元素可重复,比如:叫 'Jimmy' 的人不止一个 List list = ['Jimmy', 'Kimmy', 'Timmy', 'Jimmy']; print(list); // [Jimmy, Kimmy, Timmy, Jimmy] print(list.length); // 4 // 反转后并没有影响原 list List newList = list.reversed.toList(); print(newList); // [Jimmy, Timmy, Kimmy, Jimmy] print(list[2]); // Timmy print(newList[2]); // Kimmy print(list.isEmpty); // false print(list.isNotEmpty); // true }
List 中的常用方法有:
方法
描述
add
增加一个元素
addAll
拼接数组
indexOf
返回元素的索引,没有则返回 -1
remove
根据传入具体的值删除元素
removeAt
根据传入具体的索引删除元素
insert(index, value)
根据索引位置插入元素
insertAll(index, list)
根据索引位置插入 List
toList()
其他类型转换成 List
join()
将 List 元素拼接起来
split()
将字符串按照指定的方式拆分并转换成 List
map
遍历 List 元素,如果符合条件返回 true,否者返回 false
where
查找 list 中满足条件的元素
相关示范代码:
void main() { handleList();}void handleList() { List list = ['Jimmy', 'Kimmy']; print(list); // [Jimmy, Kimmy] list.add('Timmy'); print(list); // [Jimmy, Kimmy, Timmy] list.addAll(['Jimmy', 'Kimmy']); print(list); // [Jimmy, Kimmy, Timmy, Jimmy, Kimmy] List reversedList = list.reversed.toList(); print(reversedList); // [Kimmy, Jimmy, Timmy, Kimmy, Jimmy] // 返回的是查找到的第一元素的位置 print(list.indexOf('Jimmy')); // 0 // 移除的是查找到的第一个元素 print(list.remove('Jimmy')); // true print(list); // [Kimmy, Timmy, Jimmy, Kimmy] print(list.removeAt(0)); // Kimmy print(list); // [Timmy, Jimmy, Kimmy] list.insert(0, 'Ivy'); print(list); // [Ivy, Timmy, Jimmy, Kimmy] list.insertAll(0, ['Jimmy', 'Kimmy']); print(list); // [Jimmy, Kimmy, Ivy, Timmy, Jimmy, Kimmy] String joinList = list.join('-'); print(joinList); // Jimmy-Kimmy-Ivy-Timmy-Jimmy-Kimmy print(list); // [Jimmy, Kimmy, Ivy, Timmy, Jimmy, Kimmy] List newList = joinList.split('-'); print(newList); // [Jimmy, Kimmy, Ivy, Timmy, Jimmy, Kimmy] print(list.map((item) => item == 'Jimmy')); // (true, false, false, false, true, false) print(list.where((item) => item == 'Jimmy')); // (Jimmy, Jimmy)}
List 遍历:
List 集合遍历的方法有三种:
for 循环遍历,通过下标获取元素for...in 循环遍历,直接获取每个元素forEach 循环遍历,直接获取每个元素
void main() { List list = ['Jimmy', 'Kimmy']; // for 循环 for(var i = 0; i < list.length; i++) { // 通过下标去访问元素 print(list[i]); // Jimmy // Kimmy } // for...in 循环 for(var item in list) { print(item); // Jimmy // Kimmy } // forEach 循环 list.forEach((item) { print(item); // Jimmy // Kimmy });}Set 集合
Set 表示对象的集合,每个对象只能出现一次。
Set 中的常用属性有:
属性
描述
first
返回 Set 的第一个元素
last
返回 Set 的最后一个元素
length
返回 Set 的元素个数
isEmpty
判断 Set 是否为空
isNotEmpty
判断 Set 是否不为空
iterator
返回迭代器对象,用于遍历集合
void main() { Set set = Set.from(['Jimmy', 'Ivy']); print(set.first); // Jimmy print(set.last); // Ivy print(set.length); // 2 print(set.isEmpty); // false print(set.isNotEmpty); // true print(set.iterator); // Instance of '_CompactIterator<dynamic>'}
Set 中的常用方法有:
方法
描述
add
添加一个元素
addAll
添加一些元素
toString
转换字符串形式
join
以指定的字符串连接,以字符串形式输出
contains
集合中是否包含指定元素
containsAll
集合中是否包含指定一些元素
elementAt(index)
根据索引返回集合的元素
remove
删除指定的元素
removeAll
删除指定的一些元素
clear
删除所有元素
void main() { Set set = Set.from([]); set.add('Jimmy'); print(set.toString()); // {Jimmy} set.addAll(['Ivy', 'Kimmy']); print(set.join('-')); // Jimmy-Ivy-Kimmy print(set.contains('Timmy')); // false print(set.containsAll(['Jimmy', 'Kimmy'])); // true print(set.elementAt(1)); // Ivy set.remove('Kimmy'); print(set); // {Jimmy, Ivy} set.removeAll(['Jimmy', 'Anonymous']); print(set); // {Ivy} set.clear(); print(set); // {}}
Set 遍历:
Set 集合遍历的方法有两种:
for...in 循环调用 toList 方法返回一个 List 对象,再用 List 对象的遍历方法操作...
void main() { Set set = Set.from(['Jimmy', 'Ivy']); for(var item in set) { print(item); // Jimmy // Ivy } set.toList().forEach((item){ print(item); // Jimmy // Ivy });}Map 集合
Map 对象就是一个键值对(key - value)。
Map 中的常用属性有:
属性
描述
hasCode
返回集合的哈希码
isEmpty
是否为空
isNotEmpty
是否不为空
keys
返回集合所有的键
values
返回集合所有的值
length
返回集合键值对数
runtimeType
返回对象运行时类型
void main() { Map map = { "name": "Jimmy", "height": 100 }; print(map.hashCode); // 101270140 (每次运行时值都有所改变) print(map.isEmpty); // false print(map.isNotEmpty); // true print(map.keys.toList()); // [name, height] print(map.values); // (Jimmy, 100) print(map.length); // 2 print(map.runtimeType); // JsLinkedHashMap<dynamic, dynamic>}
Map 中的常用方法有:
方法
描述
toString
字符串表示
addAll
添加键值对到集合
containsKey
集合是否包含指定的键
containsValue
集合是否包含指定的值
remove
删除指定键值对
clear
删除所有键值对
void main() { Map map = { "name": "Jimmy", "height": 100 }; print(map.toString()); // {name: Jimmy, height: 100} map.addAll({ "age": 10 }); print(map); // {name: Jimmy, height: 100, age: 10} print(map.containsKey('name')); // true print(map.containsValue('1')); // false map.remove('height'); print(map); // {name: Jimmy, age: 10} map.clear(); print(map); // {}}
Map 遍历:
Map 集合遍历的方法有两种:
forEach 循环for...in 循环
void main() { Map map = { "name": "Jimmy", "height": 100 }; map.forEach((key, value) { print('${key} => ${value}'); // name => Jimmy // height => 100 }); for(var key in map.keys) { print(map[key]); // Jimmy // 100 }}
如果读者觉得文章还可以,不防一键三连:关注➕点赞➕收藏
标签: #js中定义list