【问题标题】:JavaScript - Filter out similar strings in arrayJavaScript - 过滤掉数组中的相似字符串
【发布时间】:2017-10-02 11:30:21
【问题描述】:

我打印了一个数组的结果,如下所示;

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 - 0h 34 mA250.1 - 3h 34 m。从第一个(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

【问题讨论】:

标签: javascript arrays list filter compare


【解决方案1】:
 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

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多