如何向SSJS阵列添加元素?

时间:2014-01-14 14:07:25

标签: javascript arrays xpages

我写的是作者,然后是读者字段。我的作者字段是正确的并且使用数组,但是当我尝试向该数组添加一个或多个值时,它将整数10写入reader字段。我做错了什么?

if (document1.isNewNote()) {
var docBackEnd:NotesDocument = document1.getDocument(true);
var a = new Array();
a[0] = getComponent('AuthorCN').getValue();
a[1] = document1.getItemValue("Super_Name")[0];
a[2] = document1.getItemValue("Holder_Name")[0];
a[3] = document1.getItemValue("AppName")[0];
a[4] = document1.getItemValue("OrderName")[0];
a[5] = document1.getItemValue("CertBy")[0];
a[6] = "Lab Access";
a[7] = "Warehouse";
a[8] = "[Admin]";



var item:NotesItem = docBackEnd.replaceItemValue('FormEditors',  @Unique(a));
item.setAuthors(true);

item = docBackEnd.replaceItemValue('FormReaders', @Unique(a.push('Another array value')));
item.setReaders(true);

}

2 个答案:

答案 0 :(得分:1)

我会编写这样的代码来将条目添加到数组

var a = [] // att better way that new Array()
a.push(getComponent('AuthorCN').getValue());
a.push(document1.getItemValue("Super_Name")[0]);
a.push(document1.getItemValue("Holder_Name")[0]);
a.push(document1.getItemValue("AppName")[0]);
a.push(document1.getItemValue("OrderName")[0]);
a.push(document1.getItemValue("CertBy")[0]);
a.push("Lab Access");
a.push("Warehouse");
a.push("[Admin]");
var item:NotesItem = docBackEnd.replaceItemValue('FormEditors',  @Unique(a));
item.setAuthors(true);

item = docBackEnd.replaceItemValue('FormReaders', @Unique(a.push('Another array value')));
item.setReaders(true);

答案 1 :(得分:1)

虽然我建议遵循Fredrik对代码的修改,但真正的问题在于你使用数组的“push”方法:它为数组添加了一个新元素,返回了新的长度,但数组本身。所以在你的情况下'10'确实是正确的返回值。

您需要做的就是在不同的步骤中执行数组扩展和字段分配部分:

1:

a.push('Another array value');

2:

item = docBackEnd.replaceItemValue('FormReaders', @Unique(a));
item.setReaders(true);

另见:http://www.w3schools.com/jsref/jsref_push.asp