0
爲了確保兩個數組JavaScript中的一樣,這是我做的: (插入零那裏是在物品1數據缺失)如何在JavaScript中匹配C#中的兩個數組?
var viewModel = @Html.Raw(Json.Encode(Model));
var items = viewModel.Date1;
var items2 = viewModel.Date2;
items = items2.map(row =>
//is there a matching row in items?
items.filter(r => r.theString == row.theString).length == 0 ?
//if not, fill with zeros
{theString:0, theCount:0} :
//if there is, return the items' row
items.filter(r => r.theString == row.theString)[0]);
我使用的條形圖以百分比的數據。我需要這樣的實際計數的數字顯示在表格形式的結果:
<div style="padding-top: 30px">
<table id="table_id" class="display">
<thead>
<tr>
<th>Month</th>
<th>Cancelled</th>
<th>Total</th>
</tr>
</thead>
<tbody>
@using (var e1 = Model.Date1.Reverse().GetEnumerator())
{
using (var e2 = Model.Date2.Reverse().GetEnumerator())
{
while (e1.MoveNext() && e2.MoveNext())
{
var item1 = e1.Current;
var item2 = e2.Current;
<tr>
<td>@item1.theDate.Value.ToString("MMMM-yyyy") </td>
<td>@item1.theCount</td>
<td>@item2.theCount</td>
</tr>
}
}
}
</tbody>
</table>
</div>
問題是,這些陣列還沒有固定的搭配海誓山盟,所以它的顯示數據是不正確。日期(theDate)與值不匹配。
或者我可以只使用javascript中的items和items2來製作表格嗎?
我無限希望有元組/對象/的一個陣列無論比,都應該在匹配的東西兩個平行陣列相同的指數。出於這個原因,並且因爲它會大規模地清理剃鬚刀代碼中的循環,並且...您將其命名。 –
我不知道Type(class)'item1'和'item2'是什麼,所以我不知道如何比較它們以知道它們是否相同。否則,使用Linq的Lambda方法(如Zip()),Where()和Select()可以創建一個單獨的列表,以循環使用當前不需要的所有舊式'GetEnumerator()'和'MoveNext()'方法.Net版本。 –
你看過Linq的.Select方法嗎?它應該在功能上與.map相似。 https://msdn.microsoft.com/en-us/library/bb534869(v=vs.110).aspx –