gpt4 book ai didi

javascript - List 到 Javascript 数组

转载 作者:行者123 更新时间:2023-12-03 11:45:40 25 4
gpt4 key购买 nike

我定义了以下类

public ReportsViewmodel
{
public GeographicData GeographicData { get; set; }
...
}

public class GeographicData
{
public List<ZipcodeData> Regions { get; set; }
...
}

public class ZipcodeData
{
//TupleList is defined as public class TupleList<T1, T2> : List<Tuple<T1, T2>>
public TupleList<double, double> Boundries { get; set; }//Contains list of Lat/Long values for plotting on a map.
}

在我看来,我需要做这样的事情:

foreach (region in GeographicData.Regions)
foreach (boundry in region.Boundries)
add item1 & item2 to a 2 dimensional Javascript array

最后,我希望我的 javascript 数组看起来像:

var vmBoundries= [[34.1, -85.4], [34.8, -85.234], [34.347, -85.345], [34.541, -85.434], [34.2341, -85.4]];

我不知道如何从我的 View 访问数据。我一直遇到范围问题。例如,如果我尝试使用 javascript for 循环,我无法索引到我的 ViewModel 列表,因为当我调用 @Model.GeographicData.Regions[i] 时循环变量未定义...

那么如何将 ViewModel 中的数据提取到 Javascript 数组中呢?

最佳答案

通常您会:

  1. 将数据转换为您想要的格式
  2. 将转换后的数据序列化为 JSON
  3. 将 JavaScript 变量分配给序列化值。

所以,像这样:

@{
IEnumerable<double[]> flattened = vm.GeographicData.Regions
.SelectMany(region => region.Boundries
.Select(tpl => new double[] { tpl.Item1, tpl.Item2 }));

string json = new JavaScriptSerializer().Serialize(flattened);
}

<script type="text/javascript">
var arr = @json;
// do something with arr.
</script>

关于javascript - List<T> 到 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26065183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com