我想知道每个字母在“输入”变量中出现了多少次。为此,我循环遍历每个字符并将它们存储在一个对象中,以及它们在句子中出现的数量。但它正在安慰 NaN。请告诉我错误在哪里?
var input = "why this kolaveri kolaveri di";
function processData(input) {
var object = {};
input.replace(/\s/g,"").split("").forEach(function(item){
object[item] == 'undefined' ? object[item] = 0 && object[item]++ : object[item]++ ;
});
console.log(object);
}
最佳答案
您可以使用hasOwnProperty
来检查属性是否存在。
var input = "why this kolaveri kolaveri di";
var object = {};
input.replace(/\s/g,"").split("").forEach(function(item){
// If the property doesn't exist, initialize it to 0
if (!object.hasOwnProperty(item))
object[item] = 0;
object[item]++
});
console.log(object);
对于讨厌的人,您可以初始化为 1,并且仅在 else 中递增。本质上是一样的,但效率更高了几个周期。使用您认为最好的任何一个。
// If the property doesn't exist, initialize it to 1
if (!object.hasOwnProperty(item))
object[item] = 1;
else
object[item]++;
关于javascript - 如何在javascript中动态添加对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32925043/