在JavaScript中反转一组布尔值

时间:2017-03-31 01:21:49

标签: javascript arrays boolean

我试图反转一串布尔值的值,而不是

inverted([true, false, true, false, true])

[false, true, false, true, false]

到目前为止,我已经想出了这个:

function inverted(bools) {
    var inversion = [];
    var string= [];
    while(!bools) {
      string.push(bools);
    }
    return inversion;
}

但我的代码无效,任何和所有帮助将不胜感激!

8 个答案:

答案 0 :(得分:5)

您可以使用.map()!运算符反转Boolean值,返回结果数组

function inverted(bools) {
   return bools.map(function(bool) {return !bool})
}

答案 1 :(得分:1)

你可以这样做:



const booleans = "[true, false, true, false, true]";
const inverted = JSON.stringify(JSON.parse(booleans).map(b => !b));

console.log(inverted);




如果使用"字符串",您实际上是指数组,则不需要转换为字符串或从字符串转换,只需执行以下操作:

const booleans = [true, false, true, false, true];
const inverted = booleans.map(b => !b);

答案 2 :(得分:1)

function inverted(bools) {
  for(var i = 0; i < bools.length; i++) {
     bools[i] = !bools[i];
   }
  return bools;
}

将其用作

var bools = [true, false, true];
bools = inverted(bools);

答案 3 :(得分:1)

你的代码只是一个大错误。您不了解使用数组的基本原则。不要只使用我的解决方案,请阅读一些关于迭代和从数组中获取元素的文章。这应该工作:

src/main/resources

答案 4 :(得分:1)

虽然这里的很多答案已经很棒了,但我还是认为我会在我的高尔夫球场打拼。正则表达式解决方案:

&#13;
&#13;
function inverted (b) {
 return b.map(/f/.test, /f/)
}

console.log(
  inverted([true, false, true, false])
)
&#13;
&#13;
&#13;

答案 5 :(得分:0)

你需要用bools.split()拆分bool。然后你可以检查并反转它们。在返回之前,您也没有在inversion []中添加任何内容。像下面这样的东西应该有效:

function inverted(bools) {
var inversion = [];
var string= bools.split(",");
for(var i=0; i<string.length(); i++) {
  inversion.push(string[i]);
}

return inversion;

}

答案 6 :(得分:0)

这是实现这一目标的另一种方式:

var booleans = [true, false, true, false, true];

function inverted(bools) {
    var inversion = [],i=0;

    while(i< bools.length) {
      inversion.push(!(bools[i]));
      i++;
    }
    return inversion;
}

var inverted =  inverted(booleans);

console.log(inverted);//Outpu : [false, true, false, true, false]

答案 7 :(得分:0)

let myArray = [true, false, false, true]
// single line solution:
let invertedArray = myArray.map((bool) => !bool)

console.log(invertedArray)