我处于一种情况,我无法获得准备此算法的逻辑。
我有一系列图像在每个图像之间交替出现箭头。就像这样:Image - > Image - > Image - > Image
这些箭头也是箭头的图像,其总和值超过它们。 现在我必须在前一个箭头中显示图像的值(当然第一个图像没有前一个箭头所以我们必须处理下一个图像值(第三个位置的图像)以在前一个箭头上显示其值(第二个位置的箭头图像))
从这里我们将有图像路径和值(如果json不正确,我很抱歉,但请关注我想知道的内容)
[{imagename1: "image1.png@", image1Value1:"imValue1@"},{imagename2: "arrowimage2.png@", image1Value2:"arrValue2@"},{imagename3: "image3.png@", image1Value3:"imValue3@"},{imagename4: "arrowimage4.png@", image1Value4:"arrValue4@"},{imagename5: "image5.png@", image1Value5:"imValue5@"}, {imagename6: "arrowimage6.png", image1Value6:"arrValue6@"},{imagename7: "image7.png@", image1Value7:"imValue7@"}, {imagename8: "arrowimage8.png@", image1Value8:"arrValue8@"}]
这就是我想要实现的目标:http://prntscr.com/am3337
请参阅此处json,其中我必须实现逻辑:
$(json).each(function(i, val) //here i receive all images
{
var counter=1;
$.each(val, function(key, val) //this value is the value contained about arrow image
{
var splitted = val.split('@');
var iamgename=splitted[0];//first parameter
var imageValue=splitted[1];//second paremeter
//how to get the next iteration value on current iteration (lets say if i am on second iteration , how can i get the third iteration image value here)
}
}
我的问题是如何保存当前迭代的值以显示在前一个箭头图像上。 (显示部分我可以做我自己)。但问题是,比方说,我在循环$.each(val, function(key, val){}
的第三次迭代。现在在第三次迭代中我有splitted[0]="image3.png"
和splitted[1]="imValue3"
,在arrowimage2.png上方显示imValue3有点困难(如何进行一次迭代以保存当前迭代值?)。或者其他解决方案可能是在第二次迭代时,尝试获取第三次迭代的值(我可以像这个值[i + 1]那样做,如果它是for循环,其中i = 2,我仍然可以获得i的值= 3增加一个增量,但我不知道如何在$.each(val, function(key, val){}
循环中执行此操作)是否有任何人可以建议我过度使用此问题?
答案 0 :(得分:1)
var json = [{imagename1: "image1.png", image1Value1:"imValue1"},{imagename2: "arrowimage2.png", image1Value2:"arrValue2"},{imagename3: "image3.png", image1Value3:"imValue3"},{imagename4: "arrowimage4.png", image1Value4:"arrValue4"},{imagename5: "image5.png", image1Value5:"imValue5"}, {imagename6: "arrowimage6.png", image1Value6:"arrValue6"},{imagename7: "image7.png", image1Value7:"imValue7"}, {imagename8: "arrowimage8.png", image1Value8:"arrValue8"}];
var counter = 1;
$(json).each(function(i, val) {
var nextImageName = json[counter]["imagename"+(counter+1)]; //your next image content is here.
$.each(val, function(key, newVal) {
var splitted = newVal.split('@');
var iamgename = splitted[0];
var imagecontent = splitted[1];
});
counter++;
});
在这里,行var nextImageName = json[counter]["imagename"+(counter+1)];
将返回您的下一个迭代图像路径。
答案 1 :(得分:0)
保存值的一种方法是将其分配给函数的外部作用域,以便在使用它时始终可以覆盖它var outerScope = 'some initializing'
function blub{
process outerScope //maybe you want to check its initializing value on first Iteration
outerScope = myNewValue
}