javascript - 访问 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);
有人可以帮助我吗?
解决方案
如果您只是想在数组内的对象中搜索特定出现的键 - 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;
}
}
推荐阅读
- r - 在 R 中将 JSON 对象列表转换为一个 JSON 对象
- java - 如何删除直方图中的重复字符 [JAVA]
- c# - C# TextBox 只允许在字符串开头使用减号 (-)
- dart - 您如何将列表未来转换为列表以用作变量而不是小部件?
- java - 在 Java 中使用 JComboBox 在 GUI 中进行时间延迟
- c# - 如何使用 if else 从 appsettings.json 中默认提供程序?
- spring-boot - Gradle 不会将 html 文件复制到执行的 jar 中
- javascript - 如何更改传单中特征集合的样式?
- javascript - 在内容框中制作 bs4 导航栏
- java - 到达结尾后从头开始读取 csv 文件(Java、OpenCSV)