JavaScript 对象;访问 json 数组时出现问题

标签 javascript json

我无法从我的 json 对象中检索数据;以下代码在控制台中返回 undefined for var r 但非常相似的代码(如下所示)在 JSFiddle 中有效。

 var currentIMGArray = new Array();

 $.ajax({
 url:"foo.php",
 type: "post",
 data: {
  action: "foo",
  parameter: foo,
 },
 dataType: "json",
 success: function (result) {
  currentIMGArray = result[3];
  console.log(currentIMGArray);
 },
 });


 $(document).ready(function(){

  $("#W").on("click", ".IMG", function() {

   console.log("currentIMGArray: "+currentIMGArray.toString());

   var IMGid = $(this).attr("id");
   console.log("IMGid: "+IMGid);

   var r = currentIMGArray.IMGid;
   console.log("r: "+r);
 })
})

这是控制台输出:

[Log] {imgGallery0: "1.jpg", imgGallery1: "2.jpg"} 
[Log] currentIMGArray: [object Object]
[Log] IMGid: imgGallery0
[Log] r: undefined

但是这段代码在 JSfiddle 中有效,所以我很困惑区别在哪里?

var arr = {imgGallery0: "1.jpg", imgGallery1: "2.jpg"};
var b = arr.imgGallery1;
console.log(b)

最佳答案

使用 var r = currentIMGArray[IMGid]; 而不是 var r = currentIMGArray.IMGid;

由于 IMGid 是一个变量并且可以更改其值,因此您需要使用数组样式方法访问内容 currentIMGArray[IMGid] 这意味着 currentIMGArray[IMGid] strong>IMGid 变量 imgGallery0imgGallery1currentIMGArray 对象中获取那个确切的键。想象一下,如果您有类似 {imgGallery0: "1.jpg", imgGallery1: "2.jpg", IMGid: '3.jpg'} 的内容,您将如何获得 3.jpgcurrentIMGArray.IMGid 在这种情况下将返回 3.jpg

关于JavaScript 对象;访问 json 数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48152958/

相关文章:

javascript - 如何动态添加和删除json中的 key

ios - Swift 4 从JSON中获取相关数据

Python:JSON字符串到字典列表 - 迭代时出错

javascript - 避免 Express.Js 将页面 url 添加到文件路径的行为的方法

javascript - 撤消 JavaScript 中的所有鼠标事件处理程序?

javascript - JSDom 不加载相关脚本

javascript - 在 jQuery 和 Javascript 之间使用 JSON 数据

java - 声明一个 js 变量,它将被我的 2 个 jsps 访问

javascript - 发布后 div 中不显示任何内容

json - Go - 奇怪的 json 连字符解码错误