JS - error: Cannot read property 'lat' of undefined

JS - error: Cannot read property 'lat' of undefined

我正在使用 P5.JS 库创建一个应用程序,该应用程序显示一个动态地图,每个国家/地区都根据当前天气进行着色,这就是我目前所拥有的:

var colors = [];
var paises = ["AR", "BR", "CL", "CO", "GY", "PE", "PY", "UY", "BO", "VE", "EC", "GF", "SR"];

var datacoor;

var url1 = "https://chart.googleapis.com/chart?";
var arg1 = "cht=map&chs=600x500&chld="
var arg2 = "&chco=";
//var URL = url1+arguments;

var img;

function setup () {
  createCanvas(500, 600);
  img = createImg("https://chart.googleapis.com/chart?cht=map&chs=600x500&chld=AR|BR|CL|CO|GY|PE|PY|UY|BO|VE|EC|GF|SR&chco=B3BCC0|5781AE");
  img.hide();

  for (var a = 0; a < paises.length; a++){
    colors.append(colors, color(getColor(paises[a])));

  }
}

function draw  () {
  background(255);

  noStroke();
  fill(30);
  textSize(35);
  //text("zz ", 15, 45);

  if (img) {
    imageMode(CENTER);
    image(img, width/2, height/2);
  }
}

function onData (response) {
  datacoor = response;
  console.log(datacoor);
}

function getColor (loc) {
  var pais = loc;
  var lat;
  var long;

  if (data1.hasOwnProperty(pais)) {
        lat = data1.pais.lat;
        console.log(lat);
    }

}

问题出在这里:

function getColor (loc) {
  var pais = loc;
  var lat;
  var long;

//data1 is a variable with the list of all countries and their coordinates
  if (data1.hasOwnProperty(pais)) {
        lat = data1.pais.lat;
        console.log(lat);
    }

}

它正在寻找对象 "pais" 而不是变量 "pais" 内的对象,我该如何解决这个问题?任何帮助表示赞赏

我猜你的意思是:

lat = data1[pais].lat;

pais 将被解释为一个字符串,并且应该按照您的意图通过使用变量 pais 的值获取 属性 来执行。

这被称为"bracket notation".