我有一个Map实例,它将有零个或1个条目。这是一个演示:
class Todo {
constructor(
public id:string,
public title:string,
public description: string ) {}
}
const todo1 = new Todo('1', 't1', 'Sarah OConnor');
const m:Map<string, Todo> = new Map();
m.set('1', todo1);
const todoInMap= m.entries().next().value[1];
console.log("The todo in the map is: ", todoInMap);
这将记录
todoInMap
实例在地图中的时间,但是如果我们m.clear()
则会收到错误消息。该函数可用于避免错误,我只是想知道Map API是否具有更简单的方法?
function getMapValue<E>(m:Map<any, E>) {
if (!m.entries().next().done) {
return m.entries().next().value;
}
return null;
}
Ended up putting adding a utility method to Slice Utilities
/**
* Gets the current active value from the `active`
* Map.
*
* This is used for the scenario where we are manging
* a single active instance. For example
* when selecting a book from a collection of books.
*
* The selected `Book` instance becomes the active value.
*
* @example
* const book:Book = getActiveValue(bookStore.active);
* @param m
*/
export function getActiveValue<E>(m:Map<any, E>) {
if (m.size) {
return m.entries().next().value[1];
}
return null;
}```
最佳答案
我认为这种选择会更好:
function getMapValue<E>(m:Map<any, E>) {
if (m.size) {
return m.entries().next().value;
}
return null;
}
将size作为属性非常奇怪,而不是length或size()而是它的大小:)
关于javascript - 从零或1项的映射中获取值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58885605/