我使用了两个关联了值的数组,这意味着arrayX[1]
与arrayY[1]
关联,arrayX[2]
与arrayY[2]
关联,以此类推。
现在我需要过滤arrayX,以匹配或包含给定值,并且只显示过滤后的arrayX和匹配的arrayY。
我试着创建一个数组/Map与键-值,我发现这个链接Take object out of array based on attribute value,然后过滤器与'.find',但我不能有预期的结果.
当我调用函数来过滤时,我传递了一个值,例如,我传递了一个字符串'2010'
- 我的数组X具有:
(10)[“2008年12月”、“2010年2月”、“2010年4月”、“2010年7月”、“2010年12月”、“2011年2月”、“2012年4月”、“2013年7月”、“2014年3月”、“2017年5月”]
- 我的阵列有:
(10)[一、七、四、一、十、十一、四、八、七、十]
所以对于我需要的输出arrayX
变为["Feb 2010", "Apr 2010", "Jul 2010", "Dec 2010"
]和arraY
变为[7, 4, 1, 10]
。
我的输入代码需要一个值和过滤器:
filtr(dt){
console.log(dt);
console.log(this.arrayX);
console.log(this.arrayY);
//Array contains x and y values at the correct position
let array = [
{y: this.Yvalues, x: this.Xvalues}
];
let item : any = array.find(i => i.x.find(dt));
//new filtered x and y values on array
console.log(item)
}
我不知道我该怎么做...我认为key -〉value是一个很好的解决方案,但是我甚至不能有一个输出...抱歉,如果我错过了一些简单的东西。
2条答案
按热度按时间ijxebb2r1#
可以使用
array#reduce
检查当前日期字符串中是否存在所提供的值,然后将其他数组中与该索引对应的日期和值添加到结果数组中。要分别获取X和Y值,例如,为了绘制图表,只需Map结果并对其进行迭代,如下所示。
irtuqstp2#
请参阅下面的代码片段。您可以使用返回的结果,如:
result.newArrayX
和result.newArrayY
。这样,您还可以保证原始数组的安全。