![](/img/trans.png)
[英]How to check if Javascript array of objects has the same value throughout
[英]How to check if array of objects has same value for same key?
我有一个 object 数组,想检查键“PhysicalVirtual”在所有对象中是否具有相同的值。 如果它具有相同的值,则应返回true
否则应返回false
。
我尝试过的代码:
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'));
错误:此处出现语法错误
Evaluator: com.glide.script.RhinoEcmaError: syntax error
script : Line(13) column(30)
console.log(testArray.find(key => key.PhysicalVirtual === 'P'));
您可以使用arrays
的every
方法来测试其所有成员的条件,例如:
const isTrue = testArray.every(
({ PhysicalVirtual }) => PhysicalVirtual === testArray[0].PhysicalVirtual
);
console.log(isTrue)
>>> True
JS Array.every是最好的解决方案
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);
使用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)
编辑:没有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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.