-
-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Map场景题 #123
Comments
arr = [
{
name: "可乐",
categories: ["热门", "饮料"],
},
{
name: "苹果",
categories: ["热门", "食物"],
},
{
name: "洗衣液",
categories: ["生活用品"],
},
];
// [
// { name: "热门", categories: ["可乐", "苹果"] },
// { name: "饮料", categories: ["可乐"] },
// { name: "食物", categories: ["苹果"] },
// { name: "生活用品", categories: ["洗衣液"] },
// ]; |
function changeFormat(arr){
let res = [];
let map = new Map();
arr.forEach(item => {
let categories = item.categories;
categories.map(keyWord => {
if(!map.has(keyWord)){
map.set(keyWord, [item.name]);
}else{
map.get(keyWord).push(item.name);
}
})
})
map.forEach((val, key) => {
res.push({ name: key, categories: val})
})
return res;
}
console.log(changeFormat(arr)) |
const arrs = [
{
name: "可乐",
categories: ["热门", "饮料"],
},
{
name: "苹果",
categories: ["热门", "食物"],
},
{
name: "洗衣液",
categories: ["生活用品"],
},
];
let map = new Map();
const res = [];
for (const arr of arrs) {
const { name, categories } = arr;
for (const category of categories) {
if (!map.has(category)) map.set(category, [name]);
else {
let val = map.get(category);
val.push(name);
map.set(category, val);
}
}
}
map.forEach((key, val) => {
res.push({ name: val, categories: key });
});
console.log(res); |
function process(arr) {
if (!Array.isArray(arr)) return;
let map = new Map();
let res = [];
arr.forEach(item => {
const categories = item.categories;
categories.map((category) => {
if (!map.has(category)) {
map.set(category, [].concat(item.name))
} else {
map.get(category).push(item.name)
}
})
})
map.forEach((value, key) => {
res.push({ name: key, categories: value })
})
return res;
}
console.log(process(arr)); |
const map = new Map();
let res2 = [];
for({name, categories} of arr){
for(let i = 0; i < categories.length; ++i){
const val = categories[i]
map.has(val) ? map.get(val).push(name) : map.set(val, [name]);
}
}
for (const [name, categories] of map) {
res2.push({name, categories});
} |
let arr = [ |
function convey(data) {
let map = new Map()
for (let item of data) {
for (let cate of item.categories) {
if (!map.has(cate)) {
map.set(cate, {
name: cate,
categories: [item.name]
})
} else {
map.get(cate).categories.push(item.name)
}
}
}
return [...map.values()]
} |
Array.from(new Set(arr.map(item => item.categories).flat())).map(item => ({ name: item, categories: arr.filter(it => it.categories.includes(item)).map(i => i.name) })) |
let map = new Map();
arr.forEach((key, index) => {
let { name, categories } = key;
categories.forEach((e) => {
if (map.has(e)) {
map.get(e).push(name);
} else {
map.set(e, [name]);
}
});
});
console.log(Array.from(map)); |
|
No description provided.
The text was updated successfully, but these errors were encountered: