有没有办法匹配多个数组并删除相似的字符串。Javascript匹配数组
array1 = ["apple", "cherry", "strawberry"];
array2 = ["vanilla", "chocolate", "strawberry"];
有没有办法匹配多个数组并删除相似的字符串。Javascript匹配数组
array1 = ["apple", "cherry", "strawberry"];
array2 = ["vanilla", "chocolate", "strawberry"];
你的问题不是很清楚,所以这里有两种解决方案:
鉴于["apple", "cherry", "strawberry"]
和["vanilla", "chocolate", "strawberry"]
你想["apple", "cherry", "strawberry", "vanilla", "chocolate"]
:
function combineWithoutDuplicates(array1, array2) {
var exists = {};
var unique = [];
for(var i = 0; i < array1.length; i++) {
exists[array1[i]] = true;
unique.push(array1[i]);
}
for(var i = 0; i < array2.length; i++) {
if(!exists[array2[i]]) {
unique.push(array2[i]);
}
}
return unique;
}
还是你想["vanilla", "chocolate"]
(从array2
删除重复) :
function removeDuplicates(array1, array2) {
var exists = {};
var withoutDuplicates = [];
for(var i = 0; i < array1.length; i++) {
exists[array1[i]] = true;
}
for(var i = 0; i < array2.length; i++) {
if(!exists[array2[i]]) {
withoutDuplicates.push(array2[i]);
}
}
return withoutDuplicates;
}
上述数组的交集将返回'[“苹果”,“樱桃”,“草莓”]'。他想要的是'(A∪B) - (A∩B)' – 2010-11-18 22:02:14
你所说的类似的意思做的,从阵列您删除?都?请注意,您在当前数组中没有任何完全匹配,所以我想知道您是如何定义类似的。 – user113716 2010-11-18 21:33:08
糟糕,拼写错误。 array1是原来的,所以从array2中删除匹配的字符串。 – Alex 2010-11-18 21:45:37