Object.keys и Object.values ​​возвращают нулевой массив объекта - PullRequest
1 голос
/ 15 октября 2019

У меня есть объект, и мне нужно получить массив для каждого ключа и значения. Я использовал 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 голосов
/ 15 октября 2019

Вам нужно использовать те же имена: pLines против PLines.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...