Arrays XPages中的数组列表如何解析

Arrays XPages中的数组列表如何解析,arrays,xpages,Arrays,Xpages,我在数组中有一些值,如下arr1; 我需要制作一种独特的arrayList,它必须在~ 如果~之前的值在新列表中,则~之后的值必须追加到数组的现有值中 var arr1:Array = new Array(); arr1[0] = "test 1 ~ 781.102"; arr1[1] = "test 2 ~ 981.112"; arr1[2] = "test 2 ~ 191.222"; arr1[3] = "~ 431.332"; arr1[4] = "test 1 ~ 121.332"; a

我在数组中有一些值,如下arr1; 我需要制作一种独特的arrayList,它必须在~ 如果~之前的值在新列表中,则~之后的值必须追加到数组的现有值中

var arr1:Array = new Array();
arr1[0] = "test 1 ~ 781.102";
arr1[1] = "test 2 ~ 981.112";
arr1[2] = "test 2 ~ 191.222";
arr1[3] = "~ 431.332";
arr1[4] = "test 1 ~ 121.332";
arr1[5] = "test 3 ~ 121.442";
arr1[6] = "test 3 ~ 201.552";
新的列表应该是这个

 var nArr:Array = new Array();
    nArr[0]= "test 1 - (781.102,121.332)";
    nArr[1]= "test 2 - (981.112,191.222)";
    nArr[2]= "test 3 - (121.442,201.552)";
    nArr[3]= "undefined - (431.332)";

您使用的不是ArrayList,而是数组

为了避免重蹈覆辙,如果您希望获得有关如何操作ArrayList的最佳实践,请在web上搜索java.util.ArrayList

最好的建议是使用Java构造而不是SSJS数组。它们在web上的记录范围更广,因为它们的使用范围不仅仅局限于XPages,而且将来您将习惯于在Java业务逻辑中处理这类事情。查看列表、集合和地图


你真正想要的不是一个唯一的列表,而是一个唯一值的映射,位于波浪线的左边,后面是一个使用该键的连接字符串。

你使用的不是ArrayList,而是数组

为了避免重蹈覆辙,如果您希望获得有关如何操作ArrayList的最佳实践,请在web上搜索java.util.ArrayList

最好的建议是使用Java构造而不是SSJS数组。它们在web上的记录范围更广,因为它们的使用范围不仅仅局限于XPages,而且将来您将习惯于在Java业务逻辑中处理这类事情。查看列表、集合和地图

实际上,您想要的不是一个唯一的列表,而是一个唯一值的映射,位于波浪线的左侧,后跟一个使用该键的串联字符串。

用于将子字符串除以~。结果是一个数组

使用带有键和值的JavaScript。关键是测试1、测试2。。。值是一个JavaScript。为arr1的每个元素添加给定键的数组中的数字

最后,从对象创建一个数组,并将数组值转换为

您的代码如下所示:

var obj = {};
for (var i = 0; i < arr1.length; i++) { 
    var keyAndValue = arr1[i].split("~");
    var key = keyAndValue[0].trim();
    var value = keyAndValue[1].trim();
    var array = [];
    if (key in obj) {
        array = obj[key];
    } 
    array.push(value);
    obj[key] = array;
}
var nArr = [];
for (key in obj) {
    nArr.push(key + " - (" + obj[key].toString() + ")");
}
用于将子字符串除以~。结果是一个数组

使用带有键和值的JavaScript。关键是测试1、测试2。。。值是一个JavaScript。为arr1的每个元素添加给定键的数组中的数字

最后,从对象创建一个数组,并将数组值转换为

您的代码如下所示:

var obj = {};
for (var i = 0; i < arr1.length; i++) { 
    var keyAndValue = arr1[i].split("~");
    var key = keyAndValue[0].trim();
    var value = keyAndValue[1].trim();
    var array = [];
    if (key in obj) {
        array = obj[key];
    } 
    array.push(value);
    obj[key] = array;
}
var nArr = [];
for (key in obj) {
    nArr.push(key + " - (" + obj[key].toString() + ")");
}

这不是一个请编写我的代码的社区。展示你的努力,告诉我们你失败的原因。向我们展示代码,这不起作用,我们将提供帮助。但是这里没有人会为你写代码…谢谢你。我是Javascript的新手。我不想让任何人写我的代码。我不知道该试什么,这就是我问的原因。我需要的只是一个逻辑上的解释。只要将我重定向到开始的地方…这不是一个请编写我的代码的社区。展示你的努力,告诉我们你失败的原因。向我们展示代码,这不起作用,我们将提供帮助。但是这里没有人会为你写代码…谢谢你。我是Javascript的新手。我不想让任何人写我的代码。我不知道该试什么,这就是我问的原因。我需要的只是一个逻辑上的解释。只需将我重定向到开始的地方…我没有java经验:我是这里的新手。。我的意思是JavaScript和XPages在XPages服务器端JavaScript中使用java对象不需要java经验。正如保罗所说,这可能是你最好的选择。我有一个视频可以帮助您开始在SSJS中使用Java对象。您不需要使用Java类。JavaScript的对象和数组为您提供了所需的功能。。我的意思是JavaScript和XPages在XPages服务器端JavaScript中使用java对象不需要java经验。正如保罗所说,这可能是你最好的选择。我有一个视频可以帮助您开始在SSJS中使用Java对象。您不需要使用Java类。JavaScript的对象和数组为您提供了所需的功能。