我有一个像这样的对象数组,
let employee = [
{
NodeType: "intern",
NodeName: "Node1"
}, {
NodeType: "intern",
NodeName: "Node2"
}, {
NodeType: "full-time",
NodeName: "Node1"
}, {
NodeType: "contract",
NodeName: "Node1"
}
]
我需要能够查看数组并查看是否所有员工都是全职员工,然后返回“全职”,或者员工列表是否只有“实习生”,返回实习生,或者如果是混合员工,则返回“混合”
我试过了
var interntype = employee.find((obj) => {
return obj.type == "intern"
});
var fulltimetype = employee.find((obj) => {
return obj.type == "full-time"
});
var contracttype = employee.find((obj) => {
return obj.type == "contract"
});
if( internType) {
return "intern";
} else if (fulltimeType) {
return "fullTime"
} else return "mixed";
但有没有一种方法可以让我不多次执行此操作,而是执行一次
最佳答案
将所有 NodeType
值插入集合中,并检查大小。如果大于1,则返回混合项,如果不大于1,则返回单个项:
const employees = [{"NodeType":"intern","NodeName":"Node1"},{"NodeType":"intern","NodeName":"Node2"},{"NodeType":"full-time","NodeName":"Node1"},{"NodeType":"contract","NodeName":"Node1"}];
const getEmployeesType = (employees) => {
const types = new Set(employees.map(({ NodeType }) => NodeType));
return types.size > 1 ? 'mixed' : [...types][0];
};
console.log('mixed: ', getEmployeesType(employees));
console.log('internes: ', getEmployeesType(employees.slice(0, 2)));
关于javascript - 检查对象数组中的属性并根据该值返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893900/