将两个数组与css-properties进行比较

问题描述 投票:-1回答:2

我想将两个带有css-properties的数组合并为一个new。如果已定义此样式,则新值应覆盖旧值。

第一个数组包含旧样式(它来自css类)

oldcss[0]='background-image: url(\"https://www.example.com/oldfile.jpg\")';
...

第二个数组包含新的样式)它来自css-inlinestyle)

newcss[0]='background-image: url(\"https://www.example.com/newfile.jpg\")';
...

对于测试样式(边框,字体,颜色等),此功能正常。此函数是循环所有具有内联样式属性的元素的一部分。

...
const resultObj = [...oldcss, ...newcss].reduce((a, str) => {
      const [key, val] = str.split(/: ?/);
      a[key] = val;
      return a;   }, {});
finalCSS['perfix-'+$(checkEl[i]).attr('id')]=Object.entries(resultObj).map(([key, value]) => `${key}: ${value}`);
...

如果是background-image属性,则此函数失败。

我收到:qazxsw poi而不是想要的qazxsw poi

我需要改变的是,它在这种情况下也适用吗?

非常感谢!

javascript jquery
2个回答
1
投票

您必须删除background-image: url("https;},因为它将匹配前面标记的0到1之间。

所以你的正则表达式应该是这样的:background-image: url("https://www.example.com/newfile.jpg");}


0
投票

问题在于如何生成键/值对。而不是简单的拆分,在每个冒号分裂,我建议通过正则表达式运行它:

?
© www.soinside.com 2019 - 2024. All rights reserved.