我目前正在研究一个代码,我需要比较两个数组并删除具有相同名称的多个元素。这里是数组;这两个阵列之间JavaScript - 删除两个数组之间的多个相同的值
vacant = [
"FRAMIA420.2 - 0h 36 m",
"FRAMIA510.4 - 0h 36 m",
"FRAMIA320.7 - 0h 36 m",
"FRAMIA520.7 - 0h 36 m",
"FRAMIA450.3 - 1h 36 m",
"FRAMIA350.1 - 2h 21 m",
"FRAMIA210.2 - 2h 21 m",
"FRAMIA340.2 - 2h 36 m"]
booked = [
"FRAMIA440.5 - 13h 0 m",
"FRAMIA540.2 - 3h 45 m",
"FRAMIA340.2 - 5h 45 m",
"FRAMIA250.1 - 3h 45 m",
"FRAMIA420.2 - 3h 45 m",
"FRAMIA540.1 - 13h 0 m",
"FRAMIA520.5 - 3h 45 m",
"FRAMIA240.4 - 3h 45 m",
"FRAMIA510.2 - 7h 0 m",
"FRAMIA510.4 - 2h 45 m",
"FRAMIA520.7 - 2h 45 m",
"FRAMIA450.1 - 1h 45 m",
"FRAMIA450.3 - 2h 0 m"]
所以相似的元件是:FRAMIA420.2,FRAMIA510.4,FRAMIA520.7,FRAMIA450.3和FRAMIA340.2
我已经过滤了元素的timestamp部分,所以我只需要比较名称部分;
var firstPart = [];
vacant.forEach(function (obj1) {
firstPart.push(obj1.substring(0, obj1.indexOf('-')))
});
booked.forEach(function (obj2) {
var c = firstPart.indexOf(obj2.substring(0, obj2.indexOf('-')));
});
最后的结果应该是这样的,只留下vacant
- 阵列,这同booked
-array没有相似之处里面的元素:
FRAMIA320.7 - 0h 36 m
FRAMIA350.1 - 2h 21 m
FRAMIA210.2 - 2h 21 m
注意阵列之间的相似性变化每天,有时可能有2个相似的元素,其他日子可能有8个或更多。
任何快速有效的方法来做到这一点?
谢谢!这很好。 – IlariM