使用[key,object]值遍历映射



我有下一个地图:

const filter = new Map();
filter.set('a1', {
Day: 55,
Type: 1,
});
filter.set('a2', {
Day: 2,
Type: 3,
});

我想通过只提取对象来迭代它:

filter.values().map(({ Day, Type }) => {
console.log(Day)
});

[...filter].map(({ Time, Type }) => {
console.log(eventTime)
});

但我得到了一个错误,map((不是函数,或者在第二种情况下,它返回map项

附言:我不能用于循环。

Map迭代器还没有map方法。您可能正在寻找forEach

filter.forEach(({ Day, Type }) => {
console.log(Day)
});

或者迭代器上的简单for … of循环:

for (const { Day, Type } of filter.values()) {
console.log(Day)
}

const filter = new Map();
filter.set('a1', {
Day: 55,
Type: 1,
});
filter.set('a2', {
Day: 2,
Type: 3,
});
for ( {Day,Type} of filter.values()) {
console.log("Day: ",Day, "Type:",Type)
}

要获取对象数组,可以在返回MapIterator的映射值上使用排列语法...。然后可以使用任何数组方法,如forEach

const filter = new Map();
filter.set('a1', { Day: 55, Type: 1 });
filter.set('a2', { Day: 2, Type: 3 });
console.log([...filter.values()])

最新更新