ドキュメントに複数値フィールドがあり、値に基づいて値を削除したいと思います。
私はこれを思いついた:
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;
}
}
}
removeFromArrayが正常に呼び出され、期待どおりにデバッグバーに「Removing 0」メッセージが表示されますが、配列はまったく変更されず、値は削除されません。何か案は?