const tagA = {
color: ['red', 'green'],
type: {
a: 10,
b: 7
}
};
const tagB = {
color: ['blue', 'red'],
type: {
b: 54,
z: 10
}
};
const tagC = {
color: ['red', 'green', 'yellow'],
type: {
a: 13,
b: 17
}
};
const tags = {
tagA: tagA,
tagB: tagB,
tagC: tagC
};
let tagsTest = Object.keys(tags);
let colorFilter = {};
tagsTest.forEach(t => {
tags[t].color.forEach(l => {
if (colorFilter.hasOwnProperty(l)) {
colorFilter[l].push(t);
}
else {
colorFilter[l] = [t];
}
}
)
});
console.log(colorFilter);
<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code> const tagA = {
color: ['red', 'green'],
type: {
a: 10,
b: 7
}
};
const tagB = {
color: ['blue', 'red'],
type: {
b: 54,
z: 10
}
};
const tagC = {
color: ['red', 'green', 'yellow'],
type: {
a: 13,
b: 17
}
};
const tags = {
tagA: tagA,
tagB: tagB,
tagC: tagC
};
let tagsTest = Object.keys(tags);
let colorFilter = {};
tagsTest.forEach(t => {
tags[t].color.forEach(l => {
if (colorFilter.hasOwnProperty(l)) {
colorFilter[l].push(t);
}
else {
colorFilter[l] = [t];
}
}
)
});
console.log(colorFilter);
Я думаю, что смог решить эту проблему с помощью вышеуказанного подхода. Если есть более простой способ, дайте мне знать.