二维数组 - arr[i][0] 给出错误结果 - JavaScript ASP.NET C#

Two Dimensional Array - arr[i][0] Gives Wrong Result - JavaScript ASP.NET C#

我有一个从 C# 模型填充的数组:

var AllObjectsArray = [];
        @foreach(var Cobject in Model.ObjectList) 
        {
            @:AllObjectsArray.push(new Array("@Cobject.Name", "@Cobject.Value", "@Cobject.Keyword"));
        }

var SelectedObjects = [];
        uniqueobj.forEach(function (element) {

            SelectedObjects.push(new Array(AllObjectsArray.filter(elem => elem[0] === element))); //makes array of selected objects with their values(name,value,keyword)
        });

我正在尝试获取每个内部数组的第二个参数,并将其添加到包含这些元素的新数组中,如下所示:

var ValuesArray = [];
        for (i = 0; i < SelectedObjects.length; i++) {
            ValuesArray.push(SelectedObjects[i][0]) //problem here i think
        };

很遗憾,在:

alert(ValuesArray + " : " + SelectedObjects);

ValuesArray 我一无所获。 SelectedObjects 的其他数据正确加载,所有三个参数都为每个内部数组正确返回,因此它不是空的。我一定是迭代错误。

编辑: 更多信息,因为我不明白我需要什么。

假设 SelectedObjects[] 包含两条这样的记录:

{ name1, number1, keyword1}
{ name2, number2, keyword2}

现在,我需要用 nane1name2 填充 ValuesArray。 这就是为什么我猜我应该遍历 SelectedObjects 并得到 SelectedObject[i][0] 在我的猜测中 i 代表内部数组索引而 1 代表该内部数组的数字部分.请纠正我并让我朝着正确的方向前进,因为我从 C# 编码方式猜测如何围绕 js 进行编码。

但是 SelectedObject[i][0] 为我提供了所有具有所有三个属性(名称、值和关键字)的 SelectedObject,我应该只获取内部数组的名称部分。

这里发生了什么?

希望这次我能更好地解释自己。

编辑:

我想我知道为什么会这样,因为 SelectedObjects[i][0] returns 整个内部数组和 SelectedObjects[i][1] 给出 null,这一定意味着 SelectedObjects 不是数组的数组但是用逗号连接的字符串数组。

有没有办法解决这个问题?我应该以不同的方式创建数组数组,还是应该在逗号上拆分内部对象并通过返回的字符串迭代?

首先,SelectedObjects[i][1] 应该是 SelectedObjects[i][0]。 但据我了解你想要像

这样的东西
var ValuesArray = [];
for (let i = 0; i < SelectedObjects.length; i++) {
    for(let j = 0; j <SelectedObjects[i].length; j++) {
         ValuesArray.push(SelectedObjects[i][j]);
    }
};

在此代码段中

var ValuesArray = [];
for (i = 0; i < SelectedObjects.length; i++) {
   ValuesArray.push(SelectedObjects[i][1]) //problem here i think
};

您正直接指向 SelectedObjects[i]

中的 second

也许你想要第一个索引,0