2009-06-11 93 views
0

HI, 在Java腳本,合併的字符串

VAR一個= 「蘋果 - 橙 - 芒果」 VAR B = 「葡萄 - 愉快-蘋果」

變種C = A + B //與2個變量合併

var c應該有值「apple-orange-mango-grapes-cheery」。重複應該被刪除。

感謝, Chells

+0

嗨,這是一個功課? – Eineki 2009-06-11 09:03:37

+0

沒有..它的問題我遇到了一個問題 – joe 2009-06-11 09:51:23

+0

這不是問題,如果這是家庭作業或不,這是一個很好的問題,可以反映在現實生活中的應用程序,並可能幫助其他人。 – vsync 2011-06-14 12:37:36

回答

1

這裏有一個蠻力算法:

var a; 
var b; // inputs 

var words = split(a+b); 
var map = {}; 
var output; 
for(index in words) { 
    if(map[ words[index] ]!=undefined) continue; 
    map[ words[index] ] = true; 
    output += (words[index] + '-'); 
} 
output[output.length-1]=' '; // remove the last '-' 

map作爲一個哈希表。

那就是它!

2

您的字符串相結合後,你將要使用的分隔符分割它(您可以在以後添加這些回)。

例如:

var a ="apple-orange-mango" 
var b ="grapes-cheery-apple" 
var c = a + "-" + b 
var Splitted = c.split("-"); 

分割後變量現在包含一個陣列,例如[蘋果,橘子,芒果,葡萄,櫻桃,蘋果]

然後可以使用的許多duplicate removing algorithms之一刪除重複。然後,你可以簡單地這樣做是爲了添加分隔符回:

result = Splitted.join("-"); 
1

我不知道這是否是一個功課。

順便說一下,您可以使用字符串對象的拆分方法拆分字符串a和b。 你的情況:

firstArray=a.split("-"); 
secondArray=b.split("-"); 

去除重複的是給你......

1

在您簡單的例子,只要使用VAR C = A + 「​​ - 」 + B; 如果你想重複刪除,分割和b成陣列,並結合他們,就像這樣:

var avalues = a.split("-"); 
var bvalues = b.split("-"); 
var combined = avalues.concat(bvalues); 
// now loop over combined and remove duplicates