在数组中的字符串“:”之前和之后控制或拆分目标和值

时间:2018-12-17 20:20:49

标签: javascript arrays node.js

我创建了一个脚本,该脚本通过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

有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

过滤到// v-----HERE-----v Email_Link.getCssValue('color').then(function (actualColorValue) { console.log("The color for Email Link is :" + actualColorValue); }); 数组后,可以findDuplicates放入对象列表:

map

答案 1 :(得分:1)

使用split在键和值之间分割并返回为一个对象。

... 
findDuplicates = ... your original code... 
const dupes = findDuplicates(spaceRemover);
const result = dupes.map((item) => {
    splitted = item.split(':')
    return { [splitted[0]]: splitted[1].trim() };
});
console.log(result.length > 0 ? result : 'Congrats you don\'t have any duplicate')