Xpages 是否从多值字段中删除值?
我的文档中有一个多值字段,我希望根据该值删除一个值 我想到了这个:Xpages 是否从多值字段中删除值?,xpages,Xpages,我的文档中有一个多值字段,我希望根据该值删除一个值 我想到了这个: var doc:NotesDocument = rowData.getDocument(); var item:NotesItem = doc.getFirstItem("ValidProjects"); var a:Array = item.getValues() for (var v in a) dBar.info("Before removed V=" + v ); removeFromArray(a,composit
var doc:NotesDocument = rowData.getDocument();
var item:NotesItem = doc.getFirstItem("ValidProjects");
var a:Array = item.getValues()
for (var v in a)
dBar.info("Before removed V=" + v );
removeFromArray(a,compositeData.ProjectID);
doc.replaceItemValue("ValidProjects",a );
for (var v in a)
dBar.info("After removed V=" + v);
doc.save();
function removeFromArray(arr, val) {
for(var i=0; i<arr.length; i++) {
dBar.info("Value = " + arr[i] + " Remove = " + val);
if(arr[i] == val) {
dBar.info("Removing " + i)
arr.splice(i, 1);
break;
}
}
}
var-doc:NotesDocument=rowData.getDocument();
变量项:NotesItem=doc.getFirstItem(“有效项目”);
变量a:Array=item.getValues()
对于(a中的var v)
dBar.info(“删除前V=”+V);
removeFromArray(a,compositeData.ProjectID);
文件替换项值(“有效项目”,a);
对于(a中的var v)
dBar.info(“删除后V=“+V”);
doc.save();
函数removeFromArray(arr、val){
对于(var i=0;i只是一个简单的例子…我不确定参数是否“通过引用”传递
如果不是,那就是原因。我通常更喜欢使用函数来返回值。从编程的角度来看,我发现阅读代码的功能更为清晰。在这个特定示例中,您可以将代码更改为:
function removeFromArray(arr, val) {
for(var i=0; i<arr.length; i++) {
dBar.info("Value = " + arr[i] + " Remove = " + val);
if(arr[i] == val) {
dBar.info("Removing " + i)
arr.splice(i, 1);
break;
}
}
return arr;
}
您不写是否可以在“After…”消息中看到更改?-或者您只可以在文档中看到值没有更改
致意
/John只是一个简单的例子……我不确定参数是否是“通过引用”传递的
如果不是,那就是原因。我通常更喜欢使用函数来返回值。从编程的角度来看,我发现阅读代码的功能更为清晰。在这个特定示例中,您可以将代码更改为:
function removeFromArray(arr, val) {
for(var i=0; i<arr.length; i++) {
dBar.info("Value = " + arr[i] + " Remove = " + val);
if(arr[i] == val) {
dBar.info("Removing " + i)
arr.splice(i, 1);
break;
}
}
return arr;
}
您不写是否可以在“After…”消息中看到更改?-或者您只可以在文档中看到值没有更改
致意
/John将项目值视为向量
function removeFromItemValues(java.util.Vector vector, val) {
// see http://docs.oracle.com/javase/6/docs/api/java
vector.remove(val);
return vector; //Optional
}
希望这有助于将项目值视为向量
function removeFromItemValues(java.util.Vector vector, val) {
// see http://docs.oracle.com/javase/6/docs/api/java
vector.remove(val);
return vector; //Optional
}
希望这有助于item.getValues()返回java.util.Vector而不是数组。因此,这可能是问题的一部分。此外,我同意John的观点,我更希望函数返回值。在IBM Jscript()中没有正确实现array.splice。至少是用作SSJS的版本。正如Stephan Wissel所指出的,您可以使用更可预测的向量路由。item.getValues()返回一个java.util.Vector而不是数组。因此,这可能是问题的一部分。此外,我同意John的观点,我更喜欢函数返回一个值。在IBM Jscript()中没有正确实现array.splice。至少是用作SSJS的版本。正如Stephan Wissel所指出的,您可以使用更可预测的向量路由。显然,数组是通过引用传递的:显然,数组是通过引用传递的: