Javascript JS/Lodash/Nodejs:打印在Lodash foreach循环中迭代的变量的名称

Javascript JS/Lodash/Nodejs:打印在Lodash foreach循环中迭代的变量的名称,javascript,node.js,lodash,Javascript,Node.js,Lodash,我有下面的循环结构,它迭代对象引用数组,为每个已定义的对象执行某些操作,并应打印出未定义对象的名称 为此,我需要打印传递到迭代器中的实际对象名 是否有任何运算符提供传入iteratee函数的参数的名称 //couple of objects with some data var a = { .... }; var b = { .... }; //undefined object var c; var d; var e; . .

我有下面的循环结构,它迭代对象引用数组,为每个已定义的对象执行某些操作,并应打印出未定义对象的名称

为此,我需要打印传递到迭代器中的实际对象名

是否有任何运算符提供传入iteratee函数的参数的名称

 //couple of objects with some data
    var a = { .... };
    var b = { .... };
    //undefined object
    var c;
    var d;    
    var e;
   .
   .
   .
   .
   var someNthVar;

_.forEach (
    [a,b,c,d,e,....],
    function (obj) {
         if (obj) {
             //do something
         } else {             
             //PROBLEM!!! How do i specify that variable 'c' is the one that is undefined
             //log undefined variables
             console.log('Undefined variable: ' + obj.variableName);
         }
    }
);
是否有任何运算符提供传入iteratee函数的参数的名称

 //couple of objects with some data
    var a = { .... };
    var b = { .... };
    //undefined object
    var c;
    var d;    
    var e;
   .
   .
   .
   .
   var someNthVar;

_.forEach (
    [a,b,c,d,e,....],
    function (obj) {
         if (obj) {
             //do something
         } else {             
             //PROBLEM!!! How do i specify that variable 'c' is the one that is undefined
             //log undefined variables
             console.log('Undefined variable: ' + obj.variableName);
         }
    }
);
不可以。您可以定义名称列表并按索引将其关联,但:

const names = ['a', 'b', 'c'];

[a, b, c].forEach((obj, i) => {
    if (!obj) {
        throw new Error(`${names[i]} missing a value`);
    }

    // do something
});
是否有任何运算符提供传入iteratee函数的参数的名称

 //couple of objects with some data
    var a = { .... };
    var b = { .... };
    //undefined object
    var c;
    var d;    
    var e;
   .
   .
   .
   .
   var someNthVar;

_.forEach (
    [a,b,c,d,e,....],
    function (obj) {
         if (obj) {
             //do something
         } else {             
             //PROBLEM!!! How do i specify that variable 'c' is the one that is undefined
             //log undefined variables
             console.log('Undefined variable: ' + obj.variableName);
         }
    }
);
不可以。您可以定义名称列表并按索引将其关联,但:

const names = ['a', 'b', 'c'];

[a, b, c].forEach((obj, i) => {
    if (!obj) {
        throw new Error(`${names[i]} missing a value`);
    }

    // do something
});

您是否考虑过使用javascript对象来保存您的值

这样你就可以用类似的方法写下如下内容:


您是否考虑过使用javascript对象来保存您的值

这样你就可以用类似的方法写下如下内容:



好的-谢谢-但是如果这个列表是动态的-如果有一个从文件中读取的对象的动态数组-它将如何工作case@BabyGroot当前位置您将这些对象命名为什么?很抱歉前面的问题主体太松散,谢谢您的努力-我已使问题更加明确。谢谢简言之,不需要另外创建一个名称数组就可以做到这一点吗?好的-谢谢-但是如果这个列表是动态的-如果有一个从文件读取的对象的动态数组-它将如何工作case@BabyGroot当前位置您将这些对象命名为什么?对不起,前面的问题太多,谢谢您的努力-I使问题更加明确。谢谢简言之,不需要另外创建一个名称数组就可以这样做吗?是的,但我的情况不是这样,对象是动态的和预加载的。我可以问一下,这两种方法中的任何一种是如何阻止您这样做的吗?事实上,这样做不是更容易吗?对象定义不是静态定义的,所以我无法编写:var objects={a:{…},b:{…},c:undefined,d:{…}它们是如何定义的?我不确定渲染
var a={..}
比渲染
a:{..}
要容易多少。也许,如果你详细阐述你的用例,我就能理解你来自何方……通常我会从另一个用户那里填充对象,该用户将通过该对象发送数据。这是一个精心设计的框架,其中a、b、c和d是具有固定名称的对象,但动态数据在运行时更新,并通过json文本文件来源。是的,但不是我的情况,对象是动态的和预加载的。我可以问一下,这两个对象中的任何一个如何阻止您这样做吗?事实上,这样做不是更容易吗?对象定义不是静态定义的,所以我无法编写:var objects={a:{…},b:{…},c:undefined,d:{…}它们是如何定义的?我不确定渲染
var a={..}
比渲染
a:{..}
要容易多少。也许,如果你详细阐述你的用例,我就能理解你来自何方……通常我会从另一个用户那里填充对象,该用户将通过该对象发送数据。这是一个精心设计的框架,其中a、b、cd是具有固定名称的对象,但动态数据在运行时更新并通过json文本文件来源。