Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xpages:比较两个视图之间的值_Xpages - Fatal编程技术网

xpages:比较两个视图之间的值

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 |

我打算比较两种观点之间的价值

假设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  | 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。这个答案对我帮助很大。非常感谢。很高兴我能帮忙。代码在不中断的情况下也可以工作,但一旦找到匹配值,它就会停止迭代内部循环,从而加快算法的速度。