curiousCat
curiousCat

Reputation: 177

How to return a boolean true if all the values in an array are true (strings) and if one of the value is false(string) stop checking using Javascript

I have an array

var myarr = ["true","false","true"];

I want the above to return false of boolean type.

var myarr = ["true","true","true"];

I want the above to return true of boolean type. Can someone please help with what's the most efficient way to achieve this?.

Is it best to first convert the string to boolean in another array and then use .every()?.

Please advise. Thank You.

Upvotes: 3

Views: 6630

Answers (4)

Goutham
Goutham

Reputation: 305

You can use like below, because Array.every iterates every element present in an array even it has false present in it.

const result = myarr.includes('false'); // true

const result2 = myarr.some((v) => v === 'false'); //  true

Upvotes: 1

traktor
traktor

Reputation: 19356

To stop processing if a "false" string is encountered, use Array.prototype.some

const allTrue = arr => !arr.some(entry => entry === 'false');

console.log("expect false true:");
console.log( allTrue(["true","false","true"]) );
console.log( allTrue(["true","true","true"]) );

If you need to check for 'true' strings, use a !== operator in the some argument:

const allTrue = arr => !arr.some(entry => entry !== 'true');

Upvotes: 1

user16165663
user16165663

Reputation:

Check your answer out here, you'll certainly get a more in-depth answer here: Check if all values in array are true, then return a true boolean statement (javascript)

let arr1 = ['true', 'false', 'true'],
    arr2 = ['true', 'true', 'true'];

let checker = arr => arr.every(v => v === 'true');

console.log(checker(arr1));
console.log(checker(arr2));

Upvotes: 5

CertainPerformance
CertainPerformance

Reputation: 371069

Check that .every value is 'true'.

return myarr.every(val => val === 'true');

Upvotes: 4

Related Questions