如何检查 JavaScript 对象数组中是否存在特定对象?
// Main array of objects
var dailogMappingData = [
{
"name": "AgglomerativeCluster",
"size": 3938
}, {
"name": "CommunityStructure",
"size": 3812
}, {
"name": "HierarchicalCluster",
"size": 6714
}
];
// search object to find in the above array is exist or not:
var findObj = {
"name": "CommunityStructure",
"size": 3812
};
var m, n;
for (m = 0; m < this.dailogMappingData.length; m++) {
for (n = 0; n < mapKeys.length; n++) {
if (this.dailogMappingData[m][mapKeys[n]] === newObj[mapKeys[n]]) {
isInArray = true;
} else {
isInArray = false;
}
}
if (isInArray) {
break;
}
}
如何在数组中找到一个对象,或者找出它是否存在?
如果name
属性是唯一的,您可以简单地检查数组中是否有任何具有相同名称的对象:
var dailogMappingData = [{
"name": "AgglomerativeCluster",
"size": 3938
}, {
"name": "CommunityStructure",
"size": 3812
}, {
"name": "HierarchicalCluster",
"size": 6714
}];
var findObj = {
"name": "CommunityStructure",
"size": 3812
};
const isInArray = dailogMappingData.some(item => item.name === findObj.name);
console.log(isInArray);
如果您不能依赖name
属性并且需要比较所有属性,您可能需要使用Lodash 的isEqual
函数
var dailogMappingData = [{
"name": "AgglomerativeCluster",
"size": 3938
}, {
"name": "CommunityStructure",
"size": 3812
}, {
"name": "HierarchicalCluster",
"size": 6714
}];
var findObj = {
"name": "CommunityStructure",
"size": 3812
};
const isInArray = dailogMappingData.some(item => _.isEqual(findObj, item));
console.log(isInArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句