【发布时间】:2020-01-13 17:12:59
【问题描述】:
这是一个数组:[2,2,3,3,5,7,9,9]
从这个数组中,我需要的不是它没有重复的值。如何获得?
const onlyUniqueWithoutDup = array.filter((item) => !item.indexOf(array))
将结果视为:[5,7];
有什么帮助吗?
【问题讨论】:
标签: javascript arrays ecmascript-6
这是一个数组:[2,2,3,3,5,7,9,9]
从这个数组中,我需要的不是它没有重复的值。如何获得?
const onlyUniqueWithoutDup = array.filter((item) => !item.indexOf(array))
将结果视为:[5,7];
有什么帮助吗?
【问题讨论】:
标签: javascript arrays ecmascript-6
你可以使用:
const array = [2,2,3,3,5,7,9,9];
const result = array.filter((item, index, arr) => (arr.lastIndexOf(item) == arr.indexOf(item)));
console.log(result);
【讨论】:
创建一个对象,其中键将是此数组中的元素,然后值将是重复次数。然后迭代这个对象,得到value只有1的key
let data = [2, 2, 3, 3, 5, 7, 9, 9];
let newData = data.reduce((acc, curr) => {
if (acc[curr]) {
acc[curr] += 1;
} else {
acc[curr] = 1
}
return acc;
}, {});
let nonDup = [];
for (let keys in newData) {
if (newData[keys] === 1) {
nonDup.push(keys)
}
}
console.log(nonDup)
【讨论】: