我试图反转一串布尔值的值,而不是
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;
}
但我的代码无效,任何和所有帮助将不胜感激!
答案 0 :(得分:5)
您可以使用.map()
,!
运算符反转Boolean
值,返回结果数组
function inverted(bools) {
return bools.map(function(bool) {return !bool})
}
答案 1 :(得分:1)
你可以这样做:
JSON.parse()
将字符串转换为JavaScript数组。Array.prototype.map()
; JSON.stringify()
转换回字符串。
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)
虽然这里的很多答案已经很棒了,但我还是认为我会在我的高尔夫球场打拼。正则表达式解决方案:
function inverted (b) {
return b.map(/f/.test, /f/)
}
console.log(
inverted([true, false, true, false])
)
&#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)