js array map
2024-10-22 04:56:08
var user = ['Alice', 'Emily', 'Kate'];
console.log(user);
var keys = user.keys();
for (var key of keys) {
console.log(key); // map.get(key)可得value值。
}
var values = user.values();
for (var value of values) {
console.log(value);
}
var kao=[];
var entries = user.entries();
for ([key, value] of entries) {
console.log(key, value);
let obj={idx:key, val:value, name:'promiss'+key};
kao.push(obj);
}
console.log(kao);
//console.log('~',kao.get(0));
var k2=[];
kao.forEach(function(value, key) {
//let obj={}
console.log(key, value);
})
// 初始化Map需要一个二维数组,或者直接初始化一个空Map
var m1 = new Map([['a', 'a1'], ['b', 'b2'], ['c', 'c3']]);
var m11 = new Map([['a', 'a1'], ['b', 'b2'], ['c', 'c3']]);
var m2 = new Map();
console.log(m1); // 返回Map {"a" => "a1", "b" => "b2", "c" => "c3"}
console.log(typeof(m1)); // object, Map仍属于 object
console.log(m1 == m11) // flase 虽然两个Map里面的值一样,但是是属于不同的object
// 1. size属性,返回 Map的元素数
console.log(m1.size); // 3
// 2. keys() 获取Map的所有key
console.log(m1.keys()); // 返回 MapIterator {"a", "b", "c"}
// 3. values() 获取Map的所有value
console.log(m1.values()); // 返回 MapIterator {"a1", "b2", "c3"}
// 4. entries() 获取Map所有成员
console.log(m1.entries()); // 返回 MapIterator {"a" => "a1", "b" => "b2", "c" => "c3"}
// 5. forEach() 循环操作映射元素
m1.forEach(function(value, key, map) {
// value: key对应的值,
// key: Map的key,(map参数已省略情况下,key可省略)
// map: Map本身,(该参数是可省略参数)
console.log(value); // key对应的值 a1 b2 c3
console.log(key); // key a b c
console.log(map); // Map本身 Map Map Map
});
// 6. set() 给Map添加数据, 返回添加后的Map
console.log(m2.set('a', 1)); // 返回Map {"a" => 1}
console.log(m2.set('b', 2)); // {"a" => 1, "b" => 2}
console.log(m2.set('a', 11)); // {"a" => 11, "b" => 2} 给已存在的键赋值会覆盖掉之前的值,
console.log('m2~',m2);
// 7. has() 检测是否存在某个key, 返回布尔值,有:true; 没有:false
console.log(m2.has('a')); // true
console.log(m2.has('c')); // false
// 8. get() 获取某个key的值,返回key对应的值,没有则返回undefined
console.log(m2.get('a')); // 11
console.log(m2.get('c')); // undefined
// 9. delete() 删除某个key及其对应的value,返回布尔值,成功:true; 失败:false
console.log(m2.delete('b')); // true
console.log(m2.delete('d')); // false
console.log(m2.get('b')); // undefined, 因为b已经删除
console.log('m2~',m2);
// 10. clear() 清除所有的值,返回 undefined
console.log(m1.clear()); // undefined
console.log(m1); // {}
// 初始化Map需要提供一个Array作为输入,或者直接创建一个空Set
var s1 = new Set(['a', 'b', 'c']);
var s11 = new Set(['a', 'b', 'c']);
var s2 = new Set(['a', 'a', 'b', 'b', 'c', 'c']);
var s3 = new Set();
console.log(s1); // 返回 Set(3) {"a", "b", "c"}
console.log(s2); // 返回 Set(3) {"a", "b", "c"}
console.log(typeof(s1)); // object
console.log(s1 == s11); // false
console.log(s1 == s2); // false
// 1. size属性 返回Set的元素数
console.log(s1.size); // 3
// 2. keys() 获取Set的所有key
console.log(s1.keys()); // 返回 SetIterator {"a", "b", "c"}
// 3. values() 获取Set的值,返回结果和 keys()一样
console.log(s1.values()); // 返回 SetIterator {"a", "b", "c"}
// 4. entries() 获取Set所有成员,返回同keys()
console.log(s1.entries()); // 返回 SetIterator {"a", "b", "c"}
// 5. forEach() 循环操作集合元素
s1.forEach(function(v, k, s){ // v、k是集合的键,s是集合本身
console.log(v); // a b c
console.log(k); // a b c
console.log(s); // Set Set Set
});
// 6. add() 给集合添加数据 返回添加后的Set
console.log(s3.add('aa')); // Set(1) {"aa"}
console.log(s3.add('bb')); // Set(2) {"aa", "bb"}
console.log(s3.add('aa')); // Set(2) {"aa", "bb"} 添加重复的值,会被排重掉,
// 7. has() 查询集合中是否包含某个元素 返回布尔值 有:true; 没有:false
console.log(s3.has('aa')); // true
console.log(s3.has('ff')); // false
// 8. delete() 删除集合中的某个元素 返回布尔值
console.log(s3.delete('aa')); // true
console.log(s3.delete('ee')); // false
console.log(s3); // Set(1) {"bb"}
// 9. clear() 清除集合的所有值 返回undefined
console.log(s1.clear()); // undefined
console.log(s1); // Set(0) {}
最新文章
- RMAN Catalog创建、配置和管理
- 【C语言】C语言局部变量和全局变量
- Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析
- Sql Server Analysis Service 转换为UnknownMember的正确设置
- GoLang安装
- .NET 轻量级 ORM 框架 - Dapper 介绍
- 手势识别官方教程(7)识别缩放手势用ScaleGestureDetector.GestureDetector和ScaleGestureDetector.SimpleOnScaleGestureListener
- 最逼近Mac OS的Linux系统 -- Elementary OS
- mysql导出数据表结构,必须退出mysql命令.重新使用msyqldump命令
- 【第一篇】学习 android 事件总线androidEventbus之sticky事件的传递
- Jquery 文字上下滚动效果示例代码
- 面向对象的三大特征——封装、继承、多态(&;常用关键字)
- cons-跨域请求
- 销售及SAP销售业务方案思维导图
- 我的代码-normalize
- annotation的概念及其作用
- Redis所支持的数据结构
- Jmeter监听tomcat
- react-native 自定义 下拉刷新 / 上拉加载更多 组件
- siamese网络&;&;tripletnet
热门文章
- CPU AMX 详解
- vue-cli 更新遇到的问题,卸载不掉旧版本2.9.6(可行)
- Linux操作命令(四) 1.which命令 2.whereis命令 3.locate命令
- 问题记录——nginx加载lua 模块,启动报错找不到 libluajit-5.1.so.2
- 苹果手机iframe高度设定不生效而且无法滑动
- RuntimeError: CUDA error: device-side assert triggered
- Mysql数据库基础第四章DDL(数据定义语言):库表的管理、数据类型与约束条件
- Thread Safety Analysis 编译期对线程安全代码的检测
- PHP中的超级变量
- Git 提交和拉取服务器最新版本代码方法