gpt4 book ai didi

给定一个带有 html 标签名称和字符串的数组的 Javascript 返回没有 dom 的 html

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:04 25 4
gpt4 key购买 nike

没有 dom 的 Javascript 字符串到 html。这适用于像这样存储内容数据的内容管理系统。

给定一个数组:

var arr = [['underline', 'italics'], 'some paragraph'];

显示输出:

<u><i>some paragraph</i></u>

var getTag = function(tag, str){
var text = "";
switch (tag) {
case "":
text = `<p>${str}</p>`;
break;
case "italics":
text = `<i>${str}<i>`;
break;
case "underline":
text = `<u>${str}</u>`;
break;
case "strikethrough":
text = `<s>${str}</s>`;
break;
case "bold":
text = `<b>${str}</b>`;
break;
default:
text = ``;
}
return text;
};

arr[0].map((e) => {
console.log( getTag(e, arr[1]) );
});

预期:

<u><i>some paragraph</i></u>

实际:

<u>some paragraph</u>
<i>some paragraph</i>

最佳答案

一种方法是使用 Array#reduce()以获得所需的结果,其中对于每次 reduce 迭代,该迭代的当前 element 环绕累积结果,如下所示。

要获得所需的包装顺序,elements 数组将首先通过调用 Array#reverse() 来反转:

var arr = [['underline', 'italics'], 'some paragraph'];

/* Extract element and content data from arr */
const [elements, text] = arr;

/* Reduce elements to the result string to wrap result with each
element iterated */
const result = elements.reverse().reduce((acc, element) => {

switch(element) {
case 'underline':
return `<u>${acc}</u>`;
case 'italics':
return `<i>${acc}</i>`;
case 'strikethrough':
return `<s>${acc}</s>`;
case 'bold':
return `<b>${acc}</b>`;
}

return acc;

}, text);

console.log(result);

关于给定一个带有 html 标签名称和字符串的数组的 Javascript 返回没有 dom 的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57932377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com