var arr = [{
email: 'someemail@somedomain.net',
domain: 'somedomain',
title: 'software developer'
}];
//desired output will be something like:
var arr = [{
email: 's*m*e*a*l@s*m*d*m*i*.n*t',
domain: 's*m*d*m*i*',
title: 's*f*w*r* d*v*l*p*r'
}];
这可以用*随机掩盖,它不需要每隔一个字符。 谢谢!
答案 0 :(得分:3)
您可以随机更改字符,并将数组连接回字符串。
var string = 'someemail@somedomain.net';
string = Array.from(string, c => Math.random() < 0.5 ? '*' : c).join('');
console.log(string);
答案 1 :(得分:2)
您可以遍历对象,并在字符串上map
循环,并在第2、3,...个字母中将任何字母更改为'*'
该解决方案不是随机的,而是根据传递给方法的值,每隔第二,第三,...个字母
var arr = [{
email: 'someemail@somedomain.net',
domain: 'somedomain',
title: 'software developer'
}];
function getMaskedData(d, every) {
return [...d].map((v,i) => (i + 1) % every == 0 ? '*' : v).join('')
}
let newObj = {}
for(let [k, v] of Object.entries(arr[0])) {
newObj[k] = getMaskedData(v, 2)
}
console.log(newObj)