首页 > 解决方案 > 访问 javascript 对象失败

问题描述

我有像这张图片一样的 json 数据,我从 PHP 获得的。 在此处输入图像描述

我想从 json 访问所有数据。对于我目前的情况,我想将现有数据与来自 Json 的数据进行匹配。

在此处输入图像描述

但我有一个小错误。我的所有数据都与 Json 数据不同。虽然必须有一些合适的数据。

在此处输入图像描述

这是我的代码

const dataArr = <?= $ar; ?>;
console.log(dataArr); //image 1
var mySVG = document.getElementById("alphasvg");
var svgDoc;
mySVG.addEventListener("load",function() {

    svgDoc = mySVG.contentDocument.documentElement;
    var xd = svgDoc.getElementsByTagName("rect");

        for(i=0;i<xd.length;i++){
            let get_a = xd[i].getAttribute('id');
            for(x = 1; x<= 30; x++){
                for(y=0; y<=4; y++){
                    if(get_a == 'rect' + x + '_child' + y){
                        //console.log(get_a); //img2
                        if(dataArr[(x-1)*y].idval.includes(get_a) == true){
                            console.log('yes u good');
                        } else {
                            console.log('error');
                        }
                    }
                }
            }
        }
    }, false);

有人可以帮助我吗?

编辑:console.log(get_a,dataArr[(x-1)*y]); 在此处输入图像描述 我的数据结果不匹配。

标签: javascriptphparraysjson

解决方案


如果您只是想在数组内的对象中搜索特定出现的键 - idval - 它的值,您可以使用简单的 for 循环,例如:

for (var a = 0; a < dataArr.length; a++) {
  if (dataArr[a].idval == get_a) {
    console.log("there it is", dataArr[a]);
    break;
  }
}

这是一个例子:

var dataArr = [{
    id: "test",
    lantai: 1,
    status_asrama: "tersedia",
    idval: "rect_child1"
  },
  {
    id: "anothertest",
    lantai: 2,
    status_asrama: "tersedia",
    idval: "rect_child2"
  }, {
    id: "finaltest",
    lantai: 3,
    status_asrama: "tersedia",
    idval: "rect_child3"
  }
];

let get_a = "rect_child2";

for (var a = 0; a < dataArr.length; a++) {
  if (dataArr[a].idval == get_a) {
    console.log("there it is", dataArr[a]);
    break;
  }
}


推荐阅读