Javascript 循环遍历对象并显示Y所在的数据
我有一个对象,它有一个名为response的属性,它包含一个带有Y和N的字符串。下一个属性是details,其顺序与响应相同,例如第一个Y与details.1相关,第二个N与details.2相关,等等。如何循环此对象并仅显示具有相应Y的细节的段落和图像Javascript 循环遍历对象并显示Y所在的数据,javascript,javascript-objects,Javascript,Javascript Objects,我有一个对象,它有一个名为response的属性,它包含一个带有Y和N的字符串。下一个属性是details,其顺序与响应相同,例如第一个Y与details.1相关,第二个N与details.2相关,等等。如何循环此对象并仅显示具有相应Y的细节的段落和图像 var options = { response: "YNY", details: { 1: { text: "This is the first option",
var options = {
response: "YNY",
details: {
1: {
text: "This is the first option",
img: "http://www.placecage.com/200/300"
},
2: {
text: "This is the second option",
img: "http://www.placecage.com/200/300"
},
3: {
text: "This is the third option",
img: "http://www.placecage.com/200/300"
}
}
};
var resp = options.response.split("");
var options = options.details;
你就快到了<代码>拆分(“”)可以。您可以进一步循环此数组,并为要作为
选项添加到页面的HTML创建字符串值。详细信息[index+1]
,然后创建进入页面的p
和img
标记
var选项={
答复:“YNY”,
详情:{
1: {
文本:“这是第一个选项”,
img:“http://www.placecage.com/200/300"
},
2: {
文本:“这是第二个选项”,
img:“http://www.placecage.com/200/300"
},
3: {
文本:“这是第三个选项”,
img:“http://www.placecage.com/200/300"
}
}
};
var resp=options.response.split(“”);
var-nHTML='';
分别为forEach(函数(字符、索引){
如果(字符=='Y'){
nHTML+=''+选项。详细信息[索引+1]。文本+'';
}
});
document.getElementById('container').innerHTML=nHTML代码>
您可以映射键,过滤零件数组并映射值
var options={response:“YNY”,详细信息:{1:{text:“这是第一个选项”,img:http://www.placecage.com/200/300},2:{text:“这是第二个选项”,img:http://www.placecage.com/200/300},3:{text:“这是第三个选项”,img:http://www.placecage.com/200/300" } } },
resp=options.response.split(“”),
详细信息=响应
.map((s,i)=>s=='Y'&&i+1)
.filter(布尔值)
.map(k=>options.details[k]);
控制台日志(详细信息)代码>
.as控制台包装{max height:100%!important;top:0;}
循环响应字符串并检查它是否包含Y或N,如果是Y,则获取图像src和文本
var选项={
答复:“YNY”,
详情:{
1: {
文本:“这是第一个选项”,
img:“http://www.placecage.com/200/300"
},
2: {
文本:“这是第二个选项”,
img:“http://www.placecage.com/200/300"
},
3: {
文本:“这是第三个选项”,
img:“http://www.placecage.com/200/300"
}
}
};
var resp=选项。响应;
var options=options.details;
var-content=“”;
对于(var i=0;i您可以执行以下操作:
var选项={
答复:“YNY”,
详情:{
1: {
文本:“这是第一个选项”,
img:“http://www.placecage.com/200/300"
},
2: {
文本:“这是第二个选项”,
img:“http://www.placecage.com/200/300"
},
3: {
文本:“这是第三个选项”,
img:“http://www.placecage.com/200/300"
}
}
};
var resp=options.response.split(“”);
Object.values(options.details).forEach(function(item,i){
if(resp[i]=“Y”){
document.getElementById('container').innerHTML++=''+item.text++'
'+';
}
});
您可以使用循环查看选项。详细说明对象值,并根据选项中的相应字符对其进行过滤。使用响应
这是您的代码应该如何编写的:
var results = Object.values(options.details).filter(function(d, i) {
return options.response.split("")[i] == "Y";
});
演示:
var选项={
答复:“YNY”,
详情:{
1: {
文本:“这是第一个选项”,
img:“http://www.placecage.com/200/300"
},
2: {
文本:“这是第二个选项”,
img:“http://www.placecage.com/200/300"
},
3: {
文本:“这是第三个选项”,
img:“http://www.placecage.com/200/300"
}
}
};
var results=Object.values(options.details).filter(函数(d,i){
返回options.response.split(“”[i]=“Y”;
});
console.log(results);
Object.keys(options.details).filter(u,i)=>options.response[i]==“Y”).map(key=>options.details[key])
@destoryer你能给我解释一下吗?e和i参数是什么?response[i]从响应字符串中提取单个字符?@KrishnaPrashatti
是数组的索引(在对象键上循环时),可用于访问。