我是新的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;
}
}
答案 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。