我怎样才能在javaScript中有一个Map <string,integer> </string,integer>

时间:2014-06-12 10:28:38

标签: javascript mapping

我是新的JavaScript如何创建一个包含String,Integer结构的地图,以及如何迭代它,我尝试了这样的事情。

var map = {};
var tempVlues = text.split(" ");
for(var i=0;i<tempVlues.length;i++){
    var v = tempVlues[i];
    if(v.length > 1)
        {
        if(map[v]==='undefined')
            map[v]=1;
        alert(map[v]);//getting undefined
        }else{
            map[v] = map[v]+1;
        }
}

1 个答案:

答案 0 :(得分:0)

我认为如果您已经格式化了代码,那么您自己就会想到它。

var tempValues = "abcd efgh    ".split(" "),
    map = {};
for (var i = 0; i < tempValues.length; i++) {
    var v = tempValues[i];
    if (v.length > 1) {
        if (map[v] === undefined) {
            map[v] = 1;
        } else {
            map[v] = map[v] + 1;
        }
    }
}
console.log(map);
# { abcd: 1, efgh: 1 }

如果找不到该值,您将获得undefined(不是字符串)。

这可以进一步缩短,就像这样

if (v.length > 1) {
    map[v] = map.hasOwnProperty(v) ? map[v] + 1 : 1
}
map.hasOwnProperty(v)中存在对v属性进行

map次检查。如果是,我们将{1}中的值加1,否则我们分配1。