2017-05-04 73 views
1

我從一個數組中看起來像下面的樣子打印結果;JavaScript - 過濾掉數組中的類似字符串

A250.1 - 0h 34 m 
A450.1 - 0h 34 m 
A240.2 - 1h 34 m 
A510.2 - 1h 34 m 
A440.2 - 1h 34 m 
A520.7 - 1h 34 m 
A350.1 - 3h 19 m 
A450.3 - 3h 34 m 
A340.1 - 3h 34 m 
A250.1 - 3h 34 m 
A320.6 - 3h 34 m 
A210.2 - 4h 19 m 
A240.4 - 5h 34 m 
A240.2 - 5h 34 m 

因此,我們必須在這裏A250.1 - 0H34米A250.1 - 3H34米。從第一個(A250.1 - 0h 34 m)過濾出第二個同名(A250.1 - 3h 34 m)的最有效方法是什麼? (其他A250.1會彈回到爲可見,當第一那些時間到期

澄清;在時間到期時它不再顯示經過濾的陣列中的元件

我想的結果。看起來像以下;​​

A250.1 - 0h 34 m 
A450.1 - 0h 34 m 
A240.2 - 1h 34 m 
A510.2 - 1h 34 m 
A440.2 - 1h 34 m 
A520.7 - 1h 34 m 
A350.1 - 3h 19 m 
A450.3 - 3h 34 m 
A340.1 - 3h 34 m 
A320.6 - 3h 34 m 
A210.2 - 4h 19 m 
A240.4 - 5h 34 m 
A240.2 - 5h 34 m 

// REMOVED (2nd) A250.1 - 3h 34 m 

關於這個部分的詳細信息可以蜜蜂在這裏看到, JavaScript - Comparing two arrays with same strings

+0

posible重複此問題http://stackoverflow.com/questions/1960473/unique-values-in-an-array – subbu

+0

@ subbu1191不是重複。 –

+0

這是如此不清楚,我甚至不知道女巫的一部分不清楚。即使之前的問題也沒有幫助。 –

回答

0
var input_array = [ 
    "A250.1 - 0h 34 m", 
    "A450.1 - 0h 34 m", 
    "A240.2 - 1h 34 m", 
    "A510.2 - 1h 34 m", 
    "A440.2 - 1h 34 m", 
    "A520.7 - 1h 34 m", 
    "A350.1 - 3h 19 m", 
    "A450.3 - 3h 34 m", 
    "A340.1 - 3h 34 m", 
    "A250.1 - 3h 34 m", 
    "A320.6 - 3h 34 m", 
    "A210.2 - 4h 19 m", 
    "A240.4 - 5h 34 m", 
    "A240.2 - 5h 34 m" 
]; 
var output_array = [] 
var tmp_array = [] 
for (var i = 0; i < input_array.length - 1; i++) { 
    var result = input_array[i].split(' - '); 
    if (tmp_array.indexOf(result[0]) == -1) { 
     tmp_array.push(result[0]); 
     output_array.push(result[0].concat(' - ' + result[1])) 
    } 
} 
console.log(output_array); 

試試這個代碼,它會工作。 檢查https://codepad.remoteinterview.io/LLPNUEZDFT