Reputation: 1117
I have an array of object ,wanted to check the key "PhysicalVirtual" has same value in all objects.
if it has same value, should return true
else it should return false
.
code which I have tried:
var testArray=[{
"Hostname": "NDCWCAP03",
"PhysicalVirtual": "P",
"Tier1": null,
"Tier3": null,
}, {
"Hostname": "NDCWCAP05",
"PhysicalVirtual": "P",
"Tier1": null,
"Tier3": null,
}];
gs.info(testArray.find(key => key.PhysicalVirtual === 'P'));
Error: getting syntax error here
Evaluator: com.glide.script.RhinoEcmaError: syntax error
script : Line(13) column(30)
console.log(testArray.find(key => key.PhysicalVirtual === 'P'));
Upvotes: 0
Views: 1026
Reputation: 5264
JS Array.every is best solution for this
var testArray=[{
"Hostname": "NDCWCAP03",
"PhysicalVirtual": "P",
"Tier1": null,
"Tier3": null,
}, {
"Hostname": "NDCWCAP05",
"PhysicalVirtual": "P",
"Tier1": null,
"Tier3": null,
}];
//ES6
//let PhysicalVirtualValue = testArray[0]?.PhysicalVirtual;
//let hasValue = false;
//if (testArray.length)
// hasValue = testArray.every( e=> e.PhysicalVirtual == PhysicalVirtualValue);
//console.log(hasValue);
//without Array.every
var PhysicalVirtualValue = testArray[0]? testArray[0].PhysicalVirtual : '';
var hasValue = true;
for(var i = 0; i < testArray.length; i++) {
if (testArray[i].PhysicalVirtual != PhysicalVirtualValue){
hasValue = false;
break;
}
}
console.log(hasValue);
Upvotes: 1
Reputation: 12209
Use Array.every()
let testArray = [{Hostname:"NDCWCAP03",PhysicalVirtual:"P",Tier1:null,Tier3:null},{Hostname:"NDCWCAP05",PhysicalVirtual:"P",Tier1:null,Tier3:null}];
let PV1 = testArray[0].PhysicalVirtual
let allMatch = testArray.every(obj => obj.PhysicalVirtual === PV1)
console.log(allMatch)
Edit: Without Array.every()
var testArray = [{Hostname:"NDCWCAP03",PhysicalVirtual:"P",Tier1:null,Tier3:null},{Hostname:"NDCWCAP05",PhysicalVirtual:"P",Tier1:null,Tier3:null}];
var PV1 = testArray[0].PhysicalVirtual;
var allMatch = true;
for(var i=0; i<testArray.length; i++){
if(testArray[i].PhysicalVirtual !== PV1){
allMatch = false;
break;
}
}
console.log(allMatch)
Upvotes: 2
Reputation: 4510
You can use every
method of arrays
to test a condition in all its members like:
const isTrue = testArray.every(
({ PhysicalVirtual }) => PhysicalVirtual === testArray[0].PhysicalVirtual
);
console.log(isTrue)
>>> True
Upvotes: 1