在Javascript中,我在这里抓取结果,并将它们分为两个变量:ticks和s1。
var viewModel = @Html.Raw(Json.Encode(Model));
var items = viewModel.Date1;
var items2 = viewModel.Date2;
var newCount;
var ticks = [];
var s1 = [];
var colors = [];
for (var i = 0; i < items.length; i++) {
newCount = items[i].theCount / items2[i].theCount * 100;
ticks.push(items[i].theCycle);
s1.push(newCount);
if (newCount < 98)
colors.push("#FF2F2F");
else
colors.push("#00749F");
}
结果如下:
b.active_serv!= 0 - 项目
的位置Cycle Count
1 823
6 530
7 475
9 962
10 591
11 121
13 751
15 716
50 133
100 39
它们的总数(没有那个where子句)-items2
Cycle Count
1 833
6 532
7 492
9 967
10 611
11 121
13 767
14 37
15 816
16 71
19 3
21 101
23 11
50 133
100 39
如您所见,总计(items2)中有更多周期,然后是b.active_serv!= 0(项目)。我需要修复项目以匹配items2,因为要获得我正在做的百分比:
newCount = items[i].theCount / items2[i].theCount * 100;
如果周期数不匹配(或缺失),如何查看所有变量项,并在该数组中的正确位置添加零。
答案 0 :(得分:1)
如果item是包含row
和theCycle
成员的theCount
个对象的数组,则会返回一个行数组,其中的项目没有匹配theCycle
item2
中的成员被{theCycle:0, theCount:0}
items = items2.map( row =>
//is there a matching row in items?
items.filter( r => r.theCycle == row.theCycle).length == 0 ?
//if not, fill with zeros
{theCycle:0, theCount:0} :
//if there is, return the items' row
items.filter( r => r.theCycle == row.theCycle)[0] );
当然,这假设r.theCycle
是唯一标识符。
例如,如果我们有这两个数组:
var items = [{theCycle:2, theCount:2}, {theCycle:1, theCount:1}];
var items2 = [{theCycle:2, theCount:2}, {theCycle:1, theCount:1}, {theCycle:3, theCount:3} ];
我们应该获得以下结果:
[{theCycle:2,theCount:2},{theCycle:1,theCount:1},{theCycle:0,theCount:0}]
items
中第三个不存在的对象被零替换。