【发布时间】:2019-08-30 14:23:45
【问题描述】:
我有一个从 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}
现在,我需要用nane1 和name2 填充ValuesArray。
这就是为什么我猜测我应该遍历SelectedObjects 并得到SelectedObject[i][0],在我的猜测中,i 代表内部数组索引,1 代表该内部数组的数字部分。请纠正我并让我朝着正确的方向前进,因为我正在从 C# 编码方式猜测如何将我的头包裹在 js 周围。
但是 SelectedObject[i][0] 给了我所有 SelectedObject 的所有三个属性(名称、值和关键字),我应该只获得内部数组的名称部分。
这里发生了什么?
希望这次我能更好地解释自己。
编辑:
我想我知道为什么会这样,因为 SelectedObjects[i][0] 返回整个内部数组,而 SelectedObjects[i][1] 给出 null,这一定意味着 SelectedObjects 不是数组数组,而是与字符串连接的数组逗号。
有没有办法解决这个问题?我应该以不同的方式创建数组数组,还是用逗号分割内部对象并遍历返回的字符串?
【问题讨论】:
-
您在浏览器控制台中是否发现任何错误?
-
uniqueobj 基本上是一个数组,其中包含匹配用户选择的第一个数组对象。
标签: javascript c# arrays razor razor-pages