Vla*_*iuk 3 javascript ecmascript-6
我有一个对象地图:
const myMap = new Map()
myMap.set(123, {
name: 'Lorem',
elements: {
books: ['book#1', 'book#2', 'book#3']
}
})
myMap.set(521, {
name: 'Ipsum',
elements: {
books: ['book#42', 'book#13', 'book#42']
}
})
Run Code Online (Sandbox Code Playgroud)
在某些时候,我需要在 Map 中找到一个元素,该元素包含book#42在elements.books数组中。我怎样才能正确地做到这一点?
您可以将 由 返回的迭代器转换Map.prototype.values()为实际数组(使用 spread ( ...) 语法或Array.from()),然后使用Array.prototype.find()
const myMap = new Map()
myMap.set(123, {
name: 'Lorem',
elements: {
books: ['book#1', 'book#2', 'book#3']
}
})
myMap.set(521, {
name: 'Ipsum',
elements: {
books: ['book#42', 'book#13', 'book#42']
}
})
const findWithSpread = function(map, book) {
return [...map.values()].find(entry => entry.elements.books.includes(book));
//return Array.from(map.values()).find(...);
}
const element = findWithSpread(myMap, "book#42");
console.log(element);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8213 次 |
| 最近记录: |