javascript - 检查对象数组中的属性并根据该值返回一个字符串

标签 javascript arrays json

我有一个像这样的对象数组,

   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/

相关文章:

javascript - 快速移动鼠标不会触发 mouseleave

javascript - 在 Javascript/jQuery 中对变量数组使用多个 .replace 调用

php - MySQL、JSON 和 Fullcalendar

javascript - Laravel 从 url 获取 Json 数据并打印

javascript - 如何从 AJAX 调用 json 对象?

javascript - 需要帮助纠正文字游戏中的功能

javascript - VS代码-如何仅从键中删除引号但保留值

python - numpy.dot 给出大整数的错误答案

javascript - 如何根据我对某个对象内容的了解,从数组中查找并删除该对象?

java - 将整数作为控制台的输入并将它们存储在数组中