使用来自二维数组

时间:2015-08-19 12:54:21

标签: xpages xpages-ssjs

我有一个二维数组。 例如:

viewScope.myTest = []; viewScope.myTest.push(["row1col1", "row1col2", "row1col3"]); viewScope.myTest.push(["row2col1", "row2col2", "row2col3"]);

在我的组合框中,我想显示column3的所有值。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

要遍历数组的所有第3列,您需要执行以下操作:

// Creating the Structure you already got
var viewScope = {
    myTest: []
}
viewScope.myTest.push(["row1col1", "row1col2", "row1col3"]);
viewScope.myTest.push(["row2col1", "row2col2", "row2col3"]);
viewScope.myTest.push(["row3col1", "row3col2", "row3col3"]);

// Get the Combobox by ID
var myCombobox = document.getElementById("myCombo");

// Iterate through all options of myTest
for (var i in viewScope.myTest)
{ 
    // Create a new Option for the Select
    var option = document.createElement("option");
    // Add the 3rd Columns as Text
    option.text = viewScope.myTest[i][2];
    // Add the Option to the Select
    myCombobox.add(option);
}

为什么? - 您正在创建一个二维数组。它的作用类似于:示例中的数组[row] [col]。 因为它们是索引,所以它们从0开始并计数到长度-1。

请查看:JSFiddle Link

答案 1 :(得分:0)

与你说的相反,你没有2-dim阵列。它是一个包含2个1-dim数组的1-dim数组。要仅获取第3列的值,您必须创建一个新数组:

var col3values= [];
for(var i in viewScope.myTest)
    if(viewScope.myTest[i].length>=3)
        col3values.push(viewScope.myTest[i][2];