ES-2015中的地图集合与循环输出错误

时间:2018-01-09 16:48:50

标签: javascript function loops

我想了解display: block收藏的算法如何在ES-2015中发挥作用,但当我使用Map方法时,我遇到了变量Map的奇怪情况和a关于缺少")" 在函数循环结束。

任何人都知道这可能是什么问题?



b




2 个答案:

答案 0 :(得分:4)

使用console.log(a, ':', b)console.log(a + ':' + b)

时,console.log中的语法无效

答案 1 :(得分:2)

似乎您想在控制台中为地图中的每个键值对打印Key:Value。只修复console.log会有效但是因为你正在了解Map我正在添加为什么Map比Javascript普通对象更适合你想要的输入。

当您向Map提供类似的2D数组时,它会创建一个类似于{'1': 'str1', 1: 'num1', true: 'bool1'}的ES6地图

现在,创建ES6地图与普通Javascript对象的区别在于密钥在Map中保留其提供的数据类型。

对象通常将所有键视为字符串,因此当您提供"1"1 StringNumber的条目时,对象将同时处理它们作为"1"并将最近给定的值分配给"1"1

let object = {'1': 'str1', 1: 'num1', true: 'bool1'}
console.log(object);
// {1: "num1", true: "bool1"}

虽然你创建的地图会像这样创建

Map(3) {"1" => "str1", 1 => "num1", true => "bool1"}



'use strict';

let map = new Map([
  ['1',  'str1'],
  [1,    'num1'],
  [true, 'bool1']
]);


map.forEach((value, key, set) => {
  console.log( key + ':' + value ); 
})

let object = {'1': 'str1', 1: 'num1', true: 'bool1'}

console.log(object);