BFE.devAI解答 - JavaScript 代码题
17. 实现一个DOM element store
可以利用DOM元素的uniqueID
属性来实现Node Store。uniqueID
是一个DOM元素的唯一标识符,可以用作对象属性的key。
因此,可以将DOM元素的uniqueID
属性作为key,将value作为对象属性存储在一个对象中。
示例代码:
class NodeStore { constructor() { this.store = {}; } set(node, value) { if (!node.uniqueID) { node.uniqueID = 'id_' + new Date().getTime(); // 给DOM元素添加uniqueID } this.store[node.uniqueID] = value; // 将value存储在对象中 } get(node) { return this.store[node.uniqueID]; } has(node) { return node.uniqueID in this.store; }}
该实现方法时间和空间复杂度较低,只需要在新建DOM元素时添加一个uniqueID
属性,并将value存储在对象中。在获取和判断是否存在时,直接使用对象属性即可,不需要遍历整个DOM节点。