我从一个看起来如下的数组中打印出结果;
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 m 和 A250.1 - 3h 34 m 。从第一个名称过滤掉第二个具有相同名称( A250.1 - 3h 34 m )的最有效方法是什么( A250.1 - 0h 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 :(得分: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