查找替换函数中未使用的对象键
Find the object key that's not used in a replace function
我有一个替换函数,它从一个对象中获取值并像这样替换模板文字:
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const template = componentJSON[0].template
const classes = componentJSON[1]
let html = template.replace(/$\{(.*?)\}/g, (match, key) => classes[key]);
console.log(html);
是否可以 return(或 consoleLog)未使用的对象键?在这种情况下 "color": "blue"
我想你可以从对象中删除 属性,然后检查对象最后还剩下什么。
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const template = componentJSON[0].template
const classes = componentJSON[1]
const html = template.replace(
/$\{(.*?)\}/g,
(match, key) => {
const str = classes[key];
delete classes[key];
return str;
}
);
console.log(componentJSON[1]);
跟踪使用的密钥,然后从原始密钥集中过滤它们
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const [ { template }, classes ] = componentJSON;
const usedKeys = new Set();
let html = template.replace(/$\{(.*?)\}/g, (match, key) =>
(usedKeys.add(key), classes[key]));
console.log(html);
const unused = Object.fromEntries(
Object.entries(classes).filter(([ key ]) => !usedKeys.has(key))
);
console.log("unused", unused);
我有一个替换函数,它从一个对象中获取值并像这样替换模板文字:
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const template = componentJSON[0].template
const classes = componentJSON[1]
let html = template.replace(/$\{(.*?)\}/g, (match, key) => classes[key]);
console.log(html);
是否可以 return(或 consoleLog)未使用的对象键?在这种情况下 "color": "blue"
我想你可以从对象中删除 属性,然后检查对象最后还剩下什么。
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const template = componentJSON[0].template
const classes = componentJSON[1]
const html = template.replace(
/$\{(.*?)\}/g,
(match, key) => {
const str = classes[key];
delete classes[key];
return str;
}
);
console.log(componentJSON[1]);
跟踪使用的密钥,然后从原始密钥集中过滤它们
let componentJSON = [
{ "template": "<div class='${layout} ${border}'></div>" },
{
"layout": "grid",
"color": "blue",
"border": "primary"
}
];
const [ { template }, classes ] = componentJSON;
const usedKeys = new Set();
let html = template.replace(/$\{(.*?)\}/g, (match, key) =>
(usedKeys.add(key), classes[key]));
console.log(html);
const unused = Object.fromEntries(
Object.entries(classes).filter(([ key ]) => !usedKeys.has(key))
);
console.log("unused", unused);