Map函数、Map对象,Map函数与Map对象的区别,JavaScript。。

文章介绍了JavaScript中的map()函数,用于返回新数组,数组元素为原始数组调用函数处理后的值,不会改变原数组。接着展示了如何使用map()合并数组对象和计算元素平方。然后讲解了Map对象,强调其存储键值对且键可以是任意类型,保持插入顺序,以及提供了如set(),get(),entries()等方法。最后对比了Map与JavaScript对象的差异。
摘要由CSDN通过智能技术生成

Map( ) 函数

map( ) 函数

map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值

注意:

1.map()不会对空数组进行检测

2.map()不会改变原始数组

array.map(function(currentValue, index, arr), thisIndex)
function(currentValue, index, arr):必须。为一个函数,数组中的每个元素都会执行这个函数。
其中函数参数:
    1.currentValue:必须。当前元素的的值。
    2.index:可选。当前元素的索引。
    3.arr:可选。当前元素属于的数组对象。

thisValue:可选。对象作为该执行回调时使用,传递给函数,用作"this"的值。
案例一:
  
// 合并数组对象
    let array1 = ['周一','周二','周三','周四','周五','周六','周日']
    let array2 = ['上班','上班','出差','出差','团建','休息','约会']
    // 将两个数组合并成一个数组并返回
    let data = array1.map((item,index) => {
      return {
        name:item,
        value:array2[index]
      }
    })
    console.log('这是合并的数组对象data',data)

//-------输出----------
这是合并的数组对象  data (7) [{}, {}, {}, {}, {}, {}, {}]
0: {name: '周一', value: '上班'}
1: {name: '周二', value: '上班'}
2: {name: '周三', value: '出差'}
3: {name: '周四', value: '出差'}
4: {name: '周五', value: '团建'}
5: {name: '周六', value: '休息'}
6: {name: '周日', value: '约会'}
案例二:
//返回由原数组中每个元素的平方组成的新数组
let array = [1, 2, 3, 4, 5];

let newArray = array.map((item) => {
    return item * item;
})

console.log(newArray)  // [1, 4, 9, 16, 25]

Map对象

Map( ) 对象

Map 对象存有键值对,其中的键可以是任何数据类型。

Map 对象记得键的原始插入顺序。

Map 对象具有表示映射大小的属性。

基本的 Map() 方法
MethodDescription
new Map()创建新的 Map 对象。
set()为 Map 对象中的键设置值。
get()获取 Map 对象中键的值。
entries()返回 Map 对象中键/值对的数组。
keys()返回 Map 对象中键的数组。
values()返回 Map 对象中值的数组。
Map() 属性
PropertyDescription
size获取 Map 对象中某键的值。
创建 Map 对象

能够使用对象作为键是 Map 的一个重要特性。

方式一
// 创建对象
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
 
// 创建新的 Map
const fruits = new Map();
 
// Add new Elements to the Map
fruits.set(apples, 500);
fruits.set(bananas, 300);
fruits.set(oranges, 200);

//输出
Map(3) {{} => 500, {} => 300, {} => 200}
[[Entries]]
0: {Object => 500}
key: {name: 'Apples'}
value: 500
1: {Object => 300}
key:{name: 'Bananas'}
value: 300
2: {Object => 200}
key: {name: 'Oranges'}
value: 200

方式二
//可以将 Array 传递给 new Map() 构造函数:
// 返回
const apples = {name: 'Apples'};
const bananas = {name: 'Bananas'};
const oranges = {name: 'Oranges'};
 
// 创建新的 Map
const fruits = new Map([;
  [apples, 500],
  [bananas, 300],
  [oranges, 200]
]);
获取键的值

get() 方法获取 Map 中键的值:

fruits.get(apples);    // 返回 500
//Remember: The key is an object (apples), not a string ("apples"):
fruits.get("apples");  // 返回 undefined
其他 Map 方法
方法描述
clear()删除 Map 中的所有元素。
delete()删除由键指定的元素。
has()如果键存在,则返回 true。
forEach()为每个键/值对调用回调。
Map.delete()

Map.delete() 删除 Map 元素:

实例

fruits.delete(apples);
Map.clear()

Map.clear() 从 Map 中移除所有元素:

实例

fruits.clear();
Map.has()

如果 Map 中存在键,则 Map.has() 返回 true:

实例

fruits.has(apples);
Map() 属性
属性描述
size获取 Map 中键的值。
Map.size

Map.size 返回 Map 中元素的数量:

实例

fruits.size;

Map 对象 与 Map 的区别

JavaScript 对象和 Map 之间的差异:

对象Map
Size对象没有 size 属性Maps 有 size 属性
键类型对象键必须是字符串(或符号)Map 键可以是任何数据类型
键顺序对象键没有很好地排序Map 键按插入排序
默认对象有默认键Map 没有默认键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值