循环对象时如何有条件地使用数据
How do I conditionally use data when looping over an object
我正在尝试遍历 json 结构并通过它们具有的标签在不同的 div 中组织图像,但我只能按顺序吐出每个键值对。我能帮忙吗?
data = {
-JkDpUSlAjzp0UMsVT-s: {
image: "http://res.abc.png",
color: "red",
shape: "round"
},
-JkDwAdq19sbNrrUIsz9: {
image: "http://res.def.png",
color: "green",
shape: "square"
},
-JkEmoK59OOpFpPrPnM4: {
image: "http://ghi.png",
color: "red",
shape: "square"
}
}
$.each(data, function() {
$.each(this, function(key, value) {
console.log(key + " " + value); // works
// trying to do something like this
if(key.color == red){
$('.div1').append('<img src="' + key.image + '">');
}
if(key.shape == square){
$('.div2').append('<img src="' + key.image + '">');
}
});
});
我可能错过了你问题的重点,但为什么不简化你所要做的...
$.each(data, function() {
if (this['color'] === 'red') {
// Do stuff...
}
if (this['shape'] === 'square') {
// Do stuff...
}
});
换句话说,你真的只需要迭代外部集合(而不是键值对)。
我正在尝试遍历 json 结构并通过它们具有的标签在不同的 div 中组织图像,但我只能按顺序吐出每个键值对。我能帮忙吗?
data = {
-JkDpUSlAjzp0UMsVT-s: {
image: "http://res.abc.png",
color: "red",
shape: "round"
},
-JkDwAdq19sbNrrUIsz9: {
image: "http://res.def.png",
color: "green",
shape: "square"
},
-JkEmoK59OOpFpPrPnM4: {
image: "http://ghi.png",
color: "red",
shape: "square"
}
}
$.each(data, function() {
$.each(this, function(key, value) {
console.log(key + " " + value); // works
// trying to do something like this
if(key.color == red){
$('.div1').append('<img src="' + key.image + '">');
}
if(key.shape == square){
$('.div2').append('<img src="' + key.image + '">');
}
});
});
我可能错过了你问题的重点,但为什么不简化你所要做的...
$.each(data, function() {
if (this['color'] === 'red') {
// Do stuff...
}
if (this['shape'] === 'square') {
// Do stuff...
}
});
换句话说,你真的只需要迭代外部集合(而不是键值对)。