xpages:比较两个视图之间的值
我打算比较两种观点之间的价值 假设view1具有以下值:xpages:比较两个视图之间的值,xpages,Xpages,我打算比较两种观点之间的价值 假设view1具有以下值: Location | Officer Australia| Peter Beglium | John Chile | Ben Italy | Mike Item | Location Book | Italy Journal | Australia Movie | Spain 假设view2具有以下值: Location | Officer Australia| Peter Beglium |
Location | Officer
Australia| Peter
Beglium | John
Chile | Ben
Italy | Mike
Item | Location
Book | Italy
Journal | Australia
Movie | Spain
假设view2具有以下值:
Location | Officer
Australia| Peter
Beglium | John
Chile | Ben
Italy | Mike
Item | Location
Book | Italy
Journal | Australia
Movie | Spain
我想做的是比较view1和view2之间的值
我编写以下代码:
var location = sessionScope.Location;
var message = "";
var view1 = @DbLookup(@DbName(), "view1", location , 0)); // use session scope variable to lookup in view1 and find location
var view2 = @DbLookup(@DbName(), "view2", view1 , 1)); // use view1 value to lookup in view
for(var x = 0; x < view1.length; x++)
{
for(var y = 0; y < view2.length; y++)
{
if(view1[x] == view2[y])//if value exist in view1 and view2
{
message = "value matches";
}
else // if not match
{
message = "value does not match";
}
// show the result in the excel
//first row list all values in view1 and the second row will show the message
writer.write("<tr><td>" + view1[x] + "</td></tr>" + message + "</td></tr>");
}
}
我想知道为什么消息只显示else部分,而不确定为什么它没有为view1[x]中的每个值显示正确的消息
事实上,我认为结果如下:
Australia | value matches
Beglium | value does not match
Chile | value does not match
Italy | value matches
代码中有什么错误?谢谢你的建议。谢谢。将代码更改为
for(var x = 0; x < view1.length; x++) {
message = "value does not match";
for(var y = 0; y < view2.length; y++) {
if(view1[x] == view2[y]) {
message = "value matches";
break;
}
}
// show the result in the excel
//first row list all values in view1 and the second row will show the message
writer.write("<tr><td>" + view1[x] + "</td></tr>" + message + "</td></tr>");
}
for(var x=0;x
将代码更改为
for(var x = 0; x < view1.length; x++) {
message = "value does not match";
for(var y = 0; y < view2.length; y++) {
if(view1[x] == view2[y]) {
message = "value matches";
break;
}
}
// show the result in the excel
//first row list all values in view1 and the second row will show the message
writer.write("<tr><td>" + view1[x] + "</td></tr>" + message + "</td></tr>");
}
for(var x=0;x
这与XPages无关,IMO,这是关于算法的基础知识。我试图提出建设性意见:有多少文件在考虑中?您需要比较视图中的哪些值(是否存在“关键”值)?我已更新了问题的内容。很抱歉给您带来不便。这与XPages无关,IMO,这是关于算法的基础知识。我试图提出建设性意见:有多少文件在考虑中?您需要比较视图中的哪些值(是否存在“关键”值)?我已更新了问题的内容。很抱歉给您带来不便。谢谢您告诉我使用关键字break
。这个答案对我帮助很大。非常感谢。很高兴我能帮忙。代码在没有break
的情况下也可以工作,但它会使算法更快,因为一旦找到匹配值,它就会停止迭代内部循环。感谢您告诉我使用关键字break
。这个答案对我帮助很大。非常感谢。很高兴我能帮忙。代码在不中断的情况下也可以工作,但一旦找到匹配值,它就会停止迭代内部循环,从而加快算法的速度。