javascript - Object.keys 和 Object.values 返回对象的零数组

标签 javascript javascript-objects

我有一个对象,需要为每个键和值获取一个数组。我使用了 Object.keys (也尝试了 Object.getOwnPropertyNames())和 Object.values() 但都返回零长度数组。我确认该对象确实具有值。

下面的代码在 jFiddle 中运行良好,但在我的环境中为 Object.keys 和 Object.values 调用返回零长度数组。在这里使用jFiddle:https://jsfiddle.net/ca2xL0bf/

我的环境:Eclipse Neon、Tomcat 8.5。浏览器:在 Chrome 和 IE11 上进行了测试。

代码或特定环境可能有什么问题?

谢谢

亚历克斯

function countPLines(data){
  var pl = data.split(',');

  pl.forEach(function(entry){   
      pLines[entry] = (pLines[entry] || 0) + 1;
  });

}

function createChartData(){
  console.log(pLines); 
  console.log(Object.keys(pLines));
  console.log(Object.values(pLines));
}

var pLines = {};
var data = ['a', 'b', 'c,a,b', 'a,b'];

data.forEach(function(ele) {
    countPLines(ele);
});

createChartData();

Screen shot of console

最佳答案

您需要使用相同的名称:pLinesPLines

function countPLines(data) {
    var pl = data.split(',');

    pl.forEach(function(entry) {
        pLines[entry] = (pLines[entry] || 0) + 1;
    });
}

function createChartData() {
    console.log(pLines);
    console.log(Object.keys(pLines));
    console.log(Object.values(pLines));
}

var pLines = {};
var data = ['a', 'b', 'c,a,b', 'a,b'];

data.forEach(countPLines);

createChartData();

关于javascript - Object.keys 和 Object.values 返回对象的零数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399934/

相关文章:

javascript - 生成最多 50 个随机数。让用户使用 JavaScript 猜测最多 5 倍的随机数

javascript - 避免浏览器弹出窗口拦截器

java - GWT Element 属性删除 IE 中的引号

javascript - 如何更改对象内部的参数?

javascript - 带连字符的 Webpack 条目

javascript - 为什么当firsts指向新对象ref时,持有第一个变量的第二个变量初始对象ref变量不会更新?

javascript - 我如何表达这个 JavaScript 方法来将参数与对象转换值进行比较?

javascript - 音频信号如何触发 Web Audio API 的功能?

javascript - 什么时候应该使用 PHP session 、浏览器本地存储和 JavaScript 对象参数?

javascript - 当有嵌套函数时,组织 javascript、php 代码以便于阅读