我创建了一个脚本,通过 Javascript 返回 CSS 中的重复行
//main.js
const fs = require('fs');
fs.readFile(process.argv[2], (err, data) => {
if (err) throw err;
let convertedFileToObject = Object;
let spaceRemover = Object;
let findDuplicates = Function;
convertedFileToObject = data.toString().split('\n');
spaceRemover = convertedFileToObject.map(post => post.replace('{', '').replace('}', '').replace('.', '').replace(';', '').replace('img', '').replace('span', '').replace('from', '').replace(/\s+/g, '')).filter(i => i);
findDuplicates = (arr) => arr.filter((item, index) => arr.indexOf(item) != index);
console.log(findDuplicates(spaceRemover).length > 0 ? findDuplicates(spaceRemover) : 'Congrats you don\'t have any duplicate')
});
CSS测试
/*app.css*/
.App-logo {
height: 40vmin;
display: flex;
background-color: #282c34;
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
}
在终端
$ node main.js app.css
[ 'background-color:#282c34', 'display:flex' ] // the result
如何控制:
之前和:
之后使其成为一个对象,以达到预期输出
$ node main.js app.css
[ {'background-color': '#282c34'}, {'display': 'flex'} ] // the expected
或删除之前的文本:
$ node main.js app.css
[ '#282c34', 'flex' ] // the another expected
有什么帮助吗?
最佳答案
过滤到 findDuplicates
数组后,您可以将其映射
到对象列表中:
findDupObjects = findDuplicates.map((s) =>
{
let keyVal = s.split(':')
let key = keyVal[0]
let value = keyVal[1]
var obj = {}
obj[key] = value
return obj
}); // <= [ {background-color: '#282c34'}, {display: 'flex'} ]
关于javascript - 控制或分割数组中字符串中 `:`前后的目标和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822450/