繁体   English   中英

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

[英]JS/Lodash/Nodejs: Printing name of variable being iterated upon within lodash foreach loop

我有以下循环结构,该结构遍历对象引用数组,对每个定义的对象执行某些操作,并应打印出未定义对象的名称。

为此,我需要打印传递给迭代器的实际对象名称。

是否有任何运算符提供传递给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函数的参数的名称?

否。您可以定义一个名称列表,并通过索引将它们关联,但是:

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

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

    // do something
});

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

这样,您可以使用类似的forIn编写类似以下内容的内容

var objects = {
    a: {...},
    b: {...},
    c: undefined,
    d: {...}
}

_.forIn(objects, function(value, name){
    if (!value) {
        throw new Error(`${name} is missing a value`);
    }
    // Do something
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM