二维数组 - arr[i][0] 给出错误的结果 - 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。 这就是为什么我猜测我应该遍历SelectedObjectsSelectedObject[i][0]在我的猜测中i代表内部数组索引,1代表该内部数组的数字部分。请纠正我,让我朝着正确的方向前进,因为我正在从 C# 编码方式中思考如何围绕 js 进行思考。

然而,SelectedObject[i][0]给了我所有具有所有三个属性(name,value和关键字)的SelectedObject,我应该只得到内部数组中name的一部分。

这是怎么回事?

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

编辑:

我想我知道为什么会发生这种情况,因为 SelectedObjects[i][0] 返回整个内部数组,而 SelectedObjects[i][1] 给出 null,这肯定意味着 SelectedObjects 不是数组数组,而是用逗号连接的字符串数组。

有没有办法解决这个问题?SHould 我以不同的方式创建数组数组,或者可能在逗号上拆分内部对象并迭代返回的字符串?

首先,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
};

您直接指向选定对象中的第二项[i]

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

最新更新