javascript - 如何在javascript中动态添加对象的属性?

标签 javascript object

我想知道每个字母在“输入”变量中出现了多少次。为此,我循环遍历每个字符并将它们存储在一个对象中,以及它们在句子中出现的数量。但它正在安慰 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/

相关文章:

javascript - 在for循环中遍历javascript对象

未添加 Javascript 对象属性

Javascript新手函数疑惑

javascript - 等效于 SVG 中的 Canvas quadraticCurveTo

javascript - D3 中的 svg 亮度滤镜

javascript - 跨域ajax查询

java - List<> 对象引用如何工作?

C++ *new 和 new 之间的区别

javascript - 创建自定义 JS 方法的正确方法

javascript - Web方法不会调用,但不会出错