javascript - 合并未知数量的不重复的数组

标签 javascript arrays

无法理解如何循环遍历所有数组并将其插入一个数组以避免重复,因此我可以得到如下结果:

['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/

相关文章:

javascript - 带有数据属性的 Angular 'ng-repeat' 函数的纯 javascript/jquery 解决方案?

java - Libgdx 将2个以上的 Sprite 数组组合成1个 Sprite 数组

c++ - 如何检查 '\t' ?

javascript - react JS : onPaste not working as expected

php - 向用户发送电子邮件并转发以进行确认

javascript - Counter-Up 不会在 Meteor 应用程序中增加 int

android - 如何从字符串数组中随机获取文本?

c - 分配多维数组后内存泄漏

javascript - 如何使用 switch 语句导入 js/html 文件?

php - JS var 获取 WP 中的 PHP 值