这是某种javascript数组初始化吗?为什么?

这是某种javascript数组初始化吗?为什么?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正在处理一个保存到mongodb存储的javascriptnode.js示例 我遇到了一段代码,我不太明白教程的作者到底想做什么,为什么。这只是我缺乏理解,但我真的很想知道这里发生了什么。请参阅下面的代码,并在有问题的行旁边附上我的注释: //save new employee EmployeeProvider.prototype.save = function(employees, callback) { this.getCollection(function(error

我正在处理一个保存到mongodb存储的javascriptnode.js示例

我遇到了一段代码,我不太明白教程的作者到底想做什么,为什么。这只是我缺乏理解,但我真的很想知道这里发生了什么。请参阅下面的代码,并在有问题的行旁边附上我的注释:

  //save new employee
  EmployeeProvider.prototype.save = function(employees, callback) {
      this.getCollection(function(error, employee_collection) {
        if( error ) callback(error)
        else {

          // This is the portion I have a question on. 
          // So this is checking to see if the array.length is undefined? Why would the length property be undefined?
          if( typeof(employees.length)=="undefined")
            // What is going on here exactly? 
            // It looks like he is initializing and array with employees parameter that was passed in to the save 
            // function earlier? I've never seen this kind of thing done before. Thoughts?
            employees = [employees];

          for( var i =0;i< employees.length;i++ ) {
            employee = employees[i];
            employee.created_at = new Date();
          }

          employee_collection.insert(employees, function() {
            callback(null, employees);
          });
        }
      });
  };
谢谢你的帮助


Chris

的意图似乎是允许employees参数为单个雇员或雇员数组。如果传递一个employee对象,它将变成一个单元素数组。

看起来像是要允许employees参数成为一个employees或一个employees数组。如果只传递一个employee对象,它将变成一个单元素数组。

If语句及其内容下面的第一行基本上是这样说的:如果employee不是数组,则使用该名称创建一个新数组,其中包含传入的内容。这保证了从那时起,employees将成为一个数组。

if语句及其内容下面的第一行基本上是这样说的:如果employees不是数组,则使用该名称创建一个新数组,其中包含传入的内容。这保证了从那时起,员工将成为一个数组。

哇!我只是假设传入的是一个数组。哇,谢谢你的解释!有道理:-正如保罗·迪克森的回答所说,这样做很可能是为了接受通过一名员工或一系列员工。哇!我只是假设传入的是一个数组。哇,谢谢你的解释!有意义:-正如Paul Dixon的回答所说,这样做可能是为了接受通过一名员工或一组员工。谢谢你的回答!你的两个答案加在一起帮助我点击。我希望我能将两者都标记为正确:-/谢谢你的回复!你的两个答案加在一起帮助我点击。我希望我能将两者都标记为正确:-/