【问题标题】:Displaying information from a multidimensional array?显示来自多维数组的信息?
【发布时间】:2012-05-09 17:48:15
【问题描述】:

我有一个多维数组的新输入。已定义的原始输入在调用时会正确显示,但新输入写为“未定义”。我认为它将新输入识别为变量。如何让它们显示为字符串?

var original = new Array(); //this is the array
function input(title, artist, ddate, genre, picsrc) {
    this.Title = title;
    this.Artist = artist;
    this.Ddate = parseInt(parseFloat(ddate));
    this.Genre = genre;
    this.Picsrc = picsrc;
}
original[0] = {title:"Hope II", artist:"Gustav Klimt", ddate:1907, genre:"Art Nouveau", picsrc:"gustav.jpg"}; //and so on

添加到数组中的值取自表单。

function addit(form) {
G = form.Title.value //as a test

original[original.length++] =  new input(form.Title.value, form.Artist.value, form.Ddate.value, form.Genre.value, form.Picsrc.value)

alert("your entry has been added")
alert(G) //value shows up in the alert
}

但是当它在这个函数中被回调时:

$("#info").html(original[currentrecord]["title"]+"<br /><h2>"+original[currentrecord]["artist"]+"</h2>"+original[currentrecord]["ddate"]+"<br />"+original[currentrecord]["genre"]);

一切都被写成“未定义”。 我假设数据已成功添加到数组中,但格式可能不正确?

【问题讨论】:

  • currentrecord的值是多少?
  • original[currentrecord].title 的值是多少?

标签: javascript jquery arrays multidimensional-array push


【解决方案1】:

我更喜欢使用点表示法,但这不是必需的。

真正的问题是:JavaScript 是区分大小写的。

我会这样做:

original[currentrecord].Title
original[currentrecord].Artist

等等……

在您的代码中的一个地方,您使用全小写(初始化 original[0] 时),但在构造函数中,您使用大写作为第一个字母。

【讨论】:

  • 与他已经使用的相比,使用点表示法没有任何好处。不过,区分大小写的事情可能是问题所在。
  • @JamesMontagne 谢谢,我已经编辑过了。我只是习惯使用点符号。 :)
猜你喜欢
  • 1970-01-01
  • 2017-03-15
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
相关资源
最近更新 更多