无法理解如何循环遍历所有数组并将其插入一个数组以避免重复,因此我可以得到如下结果:
['All', 'Images', 'Video']
到目前为止,我有以下内容,但没有达到预期:
let filterize = function(el, config){
let target = document.getElementById(el);
let arrayCommon;
for(let value in config) {
arrayCommon = [...new Set([...config[value].filter])];
}
console.log(arrayCommon)
}
var filterize_init = new filterize('Filtered', {
element_1: {
filter: ['All', 'Image']
},
element_2: {
filter: ['All', 'Video']
}
})
<div class="wrapper">
<div id="Filtered" class="filter-content">
</div>
</div>
有人可以帮忙吗?
最佳答案
如果您可以将您的config
转换为数组的数组,那么您可以调用 .concat()
将它们组合成一个带有重复项的数组。然后使用 Set
删除重复项:
let filterize = function(el, config){
let working = Object.keys(config).map(e => config[e].filter);
let arrayCommon = [...new Set([].concat(...working))];
console.log(arrayCommon);
}
var filterize_init = new filterize('Filtered', {
element_1: {
filter: ['All', 'Image']
},
element_2: {
filter: ['All', 'Video']
},
element_3: {
filter: ['All', 'Whatever', 'Video', 'Image', 'Test']
}
})
关于javascript - 合并未知数量的不重复的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43582825/