javascript - 仅在尚未到位时添加

标签 javascript data-structures

这是我的数据结构:

var data = [
 { id: '1924', info: 'boo' },
 { id: '1967', info: 'foo' }
];

id 值应该是唯一的,但信息可能不是唯一的。仅当新数据的 ID 是唯一的时,我如何将新数据添加到数据哈希中?

遍历整个哈希并查看是否已经存在这样的 id 的唯一方法是什么?

data.push({ id: '1967', info: 'goo-goo' }); //should not be added
data.push({ id: '1963', info: 'goo-goo' }); //should be added

最佳答案

如果可以更改数据结构,则可以用更少的代码完成:

var data = {
    '1924': {'info': 'goo-goo'},
    '1967': {'info': 'boo-boo'}
};

function add(obj, id, data) {
    if (obj[id] === undefined) { // if you have fear about the prototype chain being poisoned
                                 // add in a hasOwnProperty
        obj[id] = data;
    }
}

这还有一个好处是可以更快地访问(如果您有 ID)。

关于javascript - 仅在尚未到位时添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4577407/

相关文章:

javascript - 计算 SVG 元素内的面积

javascript - Cordova 文件传输插件下载总是产生 http 状态 401 和错误代码 3

javascript - 该关键字不指向当前对象

javascript - 阻止 z-index 的扩展问题

javascript - 仅当组中的另一个键名称匹配时,如何才能从 JSON API 提取键值?

java - 双向链表删除最后一个

c - 使用伪随机哈希方法的哈希数组的大小

深度优先搜索的java实现

algorithm - 最佳排序算法

algorithm - 增强 AVL 树,序列