我有一个这样的数组。我想删除className属性中的row-?单词。
[
{
type: "text",
name: "text-1632646960432-0",
satir: "1",
className: "form-control col-lg-3 row-1"
},
{
type: "text",
name: "text-1632646974512-0",
satir: "1",
className: "form-control col-lg-6 row-8"
}
]我想要这样的结果。
[
{
type: "text",
name: "text-1632646960432-0",
satir: "1",
className: "form-control col-lg-3"
},
{
type: "text",
name: "text-1632646974512-0",
satir: "1",
className: "form-control col-lg-6"
}
]我该怎么做呢?另外,我如何修剪,使末尾没有空格?
发布于 2021-09-26 09:51:59
1)您可以对阵列执行map操作,然后对className执行split操作,对其执行filter操作,然后执行join操作。
const arr = [
{
type: "text",
name: "text-1632646960432-0",
satir: "1",
className: "form-control col-lg-3 row-1",
},
{
type: "text",
name: "text-1632646974512-0",
satir: "1",
className: "form-control col-lg-6 row-8",
},
];
const result = arr.map((o) => ({
...o,
className: o.className
.split(" ")
.filter((s) => !s.startsWith("row"))
.join(" "),
}));
console.log(result);/* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
正则表达式2)您也可以使用 /\s*row-\d+/g

const arr = [{
type: "text",
name: "text-1632646960432-0",
satir: "1",
className: "form-control col-lg-3 row-1",
},
{
type: "text",
name: "text-1632646974512-0",
satir: "1",
className: "row-12 form-control row-6 col-lg-6 row-8",
},
];
const result = arr.map((o) => ({
...o,
className: o.className.replace(/\s*row-\d+/g, "").trim(),
}));
console.log(result);/* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
或/\s*row-[^\s]+\s*/g

const result = arr.map((o) => ({
...o,
className: o.className.replace(/\s*row-[^\s]+\s*/g, " ").trim(),
}));发布于 2021-09-26 17:46:59
const data =[
{
type: "text",
name: "text-1632646960432-0",
satir: "1",
className: "form-control col-lg-3 row-1"
},
{
type: "text",
name: "text-1632646974512-0",
satir: "1",
className: "form-control col-lg-6 row-8"
}
];
const results = data.map((item) => {
if (item.className.includes('row')) {
return {
...item,
className: item.className.replace(/row-[0-9]/, '').trim()
}
}
});
console.log(results);
https://stackoverflow.com/questions/69333670
复制相似问题