我想遍历数组结构的数组以过滤掉重复的日期时间字符串值,并将唯一的日期时间字符串值推送到新数组中。我尝试使用嵌套的 forEach()
方法将每个当前键值与数组 arr
中的所有键值进行比较,并将它们推送到 res
array 在不匹配的情况下,但它似乎无法正常工作。
这里是数组结构的数组
arr =[
["some_value", "2016-11-23 18:11", 1]
["some_value", "2016-11-23 18:01", 1]
["some_value", "2016-11-23 18:01", 2]
["some_value", "2016-11-23 18:01", 1]
["some_value", "2016-11-23 18:22", 1]
["some_value", "2016-11-23 18:23", 1]
["some_value", "2016-11-23 18:25", 1]
["some_value", "2016-11-23 18:24", 3]
["some_value", "2016-11-23 18:26", 1]
["some_value", "2016-11-23 18:27", 1]
];
我想得到的结果
res = ["2016-11-23 18:01",
"2016-11-23 18:11",
"2016-11-23 18:22",
"2016-11-23 18:23",
"2016-11-23 18:24",
"2016-11-23 18:25",
"2016-11-23 18:26",
"2016-11-23 18:27"];
有人可以给我一些提示以了解如何进行吗?
最佳答案
我会将数组数组映射到日期字符串数组:
arr = arrayOfArrays.map(x => x[1])
然后如果你把它转换成set你得到独特的值(value)
var set = new Set(arr)
如果需要你最终可以把它变回数组
var uniq = Array.from(set)
用于排序
uniq.sort((a,b)=> new Date(a) - new Date(b))
var arrayOfArrays = [
["some_value", "2016-11-23 18:11", 1],
["some_value", "2016-11-23 18:01", 1],
["some_value", "2016-11-23 18:01", 2],
["some_value", "2016-11-23 18:01", 1],
["some_value", "2016-11-23 18:22", 1],
["some_value", "2016-11-23 18:23", 1],
["some_value", "2016-11-23 18:25", 1],
["some_value", "2016-11-23 18:24", 3],
["some_value", "2016-11-23 18:26", 1],
["some_value", "2016-11-23 18:27", 1],
];
var arr = arrayOfArrays.map(x => x[1])
var set = new Set(arr)
var uniq = Array.from(set)
uniq.sort((a,b)=> new Date(a) - new Date(b))
console.log(uniq)
关于javascript - 从javascript中的数组数组中获取唯一的日期时间字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460751/