如何优雅的将二进制字符串按位取反?

例如'1001'取反输出'0110',在不转换为数组的前提下能实现吗

回答

let str = '';

for (let i of '1001') {

str+= i ^ 1;

}

let mapChar = {

'0' : '1',

'1' : '0',

};

'1001'.replace(/[0|1]/g, function($match){

if($match in mapChar === true)

return mapChar[$match];

return $match;

});

'1001'.replace(/0/g, '3').replace(/1/g, '0').replace(/3/g, '1')

// 或者:

'1001'.replace(/[0|1]/g, $match => $match ^ 1)

// 或者

'1001'.replace(/\d/g, $match => $match ^ 1)

// 或者

'1001'.replace(/./g, $match => $match ^ 1)

以上是 如何优雅的将二进制字符串按位取反? 的全部内容, 来源链接: www.h5w3.com/38440.html

回到顶部