我有一个像这样的数组
selectedData = [{
Name = 'Michelle',
LRN = '100011'
},
{
Name = 'Micheal',
LRN = '100011'
},
{
Name = 'Mick',
LRN = '100012'
} // so on....
]
我通过一个函数发送这个数组,它只是检查每个对象的 LRN 属性是否相同,如果不同则抛出错误。我已将函数编写为 -
createSet(selectedData) {
this.selectedData.forEach (element => {
//the condition
}
else
{
this.openSnackBar ("LRN mismatching");
}
}
如何检查每个对象的LRN属性是否相同?除非必要,否则我不想循环。我正在处理超过一千条记录。我感谢所有的帮助。 :)
最佳答案
你可以采取Array#every
并互相检查第一项。如果条件为 false
,该方法将停止迭代,然后返回 false
,否则返回 true
。
回调的参数可以包含三部分,一部分用于项目,下一个用于索引,第三部分包含对数组的引用。
在这种情况下,仅该项目与 destructuring 一起使用。 LRN
和数组。不需要的索引用下划线表示,这是 Javascript 中的有效变量名称。
if (!array.every(({ LRN }, _, a) => LRN === a[0].LRN)) {
this.openSnackBar ("LRN mismatching");
}
包含具有相同值的所有属性 LRN
的示例的代码。
const
selectedData = [{ Name: 'Michelle', LRN: '100011' }, { Name: 'Micheal', LRN: '100011'}, { Name: 'Mick', LRN: '100011' }];
if (!selectedData.every(({ LRN }, _, a) => LRN === a[0].LRN)) {
console.log("LRN mismatching");
} else {
// just to show
console.log('OK');
}
不匹配
const
selectedData = [{ Name: 'Michelle', LRN: '100011' }, { Name: 'Micheal', LRN: '100011'}, { Name: 'Mick', LRN: '100012' }];
if (!selectedData.every(({ LRN }, _, a) => LRN === a[0].LRN)) {
console.log("LRN mismatching");
} else {
// just to show
console.log('OK');
}
关于javascript - 如何确定Javascript数组是否包含属性彼此相等的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71157281/