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

时间:2019-10-15 17:35:51

标签: 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

1 个答案:

答案 0 :(得分:0)

您需要使用相同的名称: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();