0

我正在按如下方式创建地图:

    var employeeMap = new Object();
   addElement(employeeMap , 1, "ABC");
   addElement(employeeMap , 2, "ABCD");

    alert(getElement(employeeMap,1)); // ABC

    function addElement(map,key,value){
        map[key] = value;
        return map;
    }

    function getElement(map,key){
        return map[key];
    }

如何从地图中删除键值对?设置 map[key] = null 是唯一的选择吗?

谢谢, 希哈

4

2 回答 2

1

要实际删除键/值对,请使用deletehttps ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/delete

所以你可以创建一个函数来删除元素:

function deleteElement(map, key)) {
    if (map.hasOwnProperty(key) {
        delete map[key];
    }
}

并称它为:

deleteElement(employeeMap, 2);

更新:

但正如我正在阅读的那样,如果它成功,并且只有当它不能被删除(有几个原因)时才会delete返回。所以我想真正的版本将是另一个答案:truefalse

function deleteElement(map, key)) {
    return (delete map[key]);
}
于 2013-01-29T05:57:21.793 回答
0

使用delete

delete employeeMap[1]

要遵循您的功能模式:

function deleteElement(map,key){
    return delete map[key];
}

deleteElement(employeeMap, 1);
于 2013-01-29T05:57:14.183 回答