返回一个新的数组
当数组中元素是值类型,map不会改变原数组;当是引用类型,则可以改变原数组
// MAP类型 是3阶段和实际项目中,应用比较广泛的一种数据类型
// 是一个 类似于 对象的数据类型
// 重新继续认识一下对象
// 最初,喜欢的是你的动人的容颜
// 之后,喜欢的是你的温柔的性格
// 现在,我深深的爱上你独特的灵魂
// 深入了解JavaScript的对象
// 给对象添加属性和属性值
// 创建一个空对象
// const obj = {};
// obj.name = '张三';
// 添加不同类型属性,和属性值
// 属性之前都是字符串类型,现在如果是其他类型会是什么结果
// const arr = [1,2,3];
// 将一个数组,企图作为对象的键名索引
// 键名是数组中的单元内容
// obj[arr] = '数组';
// const fun = function (){
// console.log(123)
// }
// 企图将一个函数,作为对象的键名索引
// 键名是函数的程序内容
// obj[fun] = '函数';
// const a = {name:'张三'};
// 企图将一个对象,作为对象的键名索引
// 键名是 [object Object] 固定内容
// obj[a] = '对象';
// console.log(obj)
// 经典面试题
const obj = {name:'张三'};
const a = {name:'a'};
const b = {name:'b'};
let s = 'sex';
obj[s] = 'sexA'; // 执行结束,obj对象中,内容是什么
// 执行结果是 sex:sexA
// [s] 会解析变量s 使用的是 变量s 中存储的数据 sex
obj.s = 'sexB'; // 执行结果是 s:sexB
// 点语法,不会解析变量s,使用的就是 字符s 作为键名
// const a = {name:'a'};
obj[a] = 100; // [object Object]: 100
// []语法解析变量a,变量a解析的结果是 对象类型
// 对象类型作为键名索引 结果是 [object Object] 固定作为键名
// const b = {name:'b'};
obj[b] = 200; // 只有 [object Object]: 200
// []语法解析变量b,变量b解析的结果 还是对象类型
// 新增的单元的键名 还是 [object Object]
// 对象的特点是,不会生成重复的键名
// 如果是已经存在的键名是重复赋值,存储新的数值内容
// 对 [object Object] 这个键名重复赋值,之后的200,覆盖之前的100
// console.log(obj);
// 介绍MAP类型******************************************
// 基本语法
// 使用内置构造函数,Map() 来声明
// const map = new Map();
// 可以在声明时,同时赋值,赋值必须是二维数组的形式
// 单元1 单元2 单元3
// [ [ 键名 , 数值 ] , [键名 , 数值] , [ 键名 , 数值 ] ....]
// 二维数组中的 数组单元 ,作为Map类型的单元
// 二维数组中,二维数组的 两个单元 ,第一个单元是Map单元的键名,第二个单元是Map单元的数值
const map = new Map([ ['name','张三'] , [ [1,2,3] , '数组' ] , [ function(){console.log(123)} , '函数' ] , [ {a:100} , '对象' ] ]);
// MAP类型的操作方法***************************************
// 1,添加单元
// set() 方法
// 参数1: 新增单元的键名
// 参数2: 新增单元的数值
map.set( 'new' , '我是新增单元' );
// 2,获取单元
// get() 方法
// 参数1: 单元键名,获取的结果是对应的数值数据
// console.log( map.get('new') );
// 3,删除单元
// delete() 方法
// 参数1: 要删除的单元的键名
// map.delete('new');
// 4,清除单元
// map.clear();
// 5,判断是否是MAP 的单元
// has() 方法
// 参数1: 要判断的键名
console.log( map.has('new') );
// 6,循环遍历,使用forEach方法
map.forEach(function(item,key){
console.log(item,key)
})
console.log(map);
MAP数据类型 (与obj 对象的区别)
最新推荐文章于 2023-06-22 21:49:30 发布