【问题标题】:Getting entries from an array in Node JS从 Node JS 中的数组中获取条目
【发布时间】:2019-08-01 06:28:41
【问题描述】:

我怎样才能做到这一点?

我正在尝试通过将参数传递给函数来获取条目。

在 findentry.js 文件中,我有以下代码:

var elements = [{"ID": "A1", "XX": "A2", "KK": "A3"}, {"ID": "B1", "XX": "B2", "KK": "B3"}];


function getEntry (err, cb) {
    if (err) {
        return cb(err);
    }
    // console.log(elements[0]);
    function getElement(c, g) {
        return c.ID === g;
    }
    entry = (elements.find(getElement));
    cb(null, entry);
}

module.exports = getEntry;

在 server.js 中,我执行以下操作:

var entry = require('./findentry.js');
var el = "B1";
entry(function (err, el) {
    console.log(err, el)
});

【问题讨论】:

    标签: javascript arrays node.js functional-programming


    【解决方案1】:

    getEntry 传递一个附加参数,指示您要查找的ID。

    var elements = [{
      "ID": "A1",
      "XX": "A2",
      "KK": "A3"
    }, {
      "ID": "B1",
      "XX": "B2",
      "KK": "B3"
    }];
    
    
    function getEntry(cb, idToFind) {
      try {
        const entry = elements.find(({ ID }) => ID === idToFind);
        cb(null, entry);
      } catch(err) {
        cb(err);
      }
    }
    
    
    var idToFind = "B1";
    getEntry(function(err, el) {
      console.log(err, el)
    }, idToFind);

    【讨论】:

    • 谢谢,现在它可以工作了,但我在输出中的条目之前也得到了一个空值。我怎样才能删除它?
    • 您似乎表明您希望回调具有 err 参数 - 这就是它的用途。 (仅当数组中的元素是nullundefined,或者elements 不是数组时才会抛出。如果您不想要err 参数,只需将其删除(如以及try/catch)
    猜你喜欢
    • 2017-08-06
    • 2017-06-24
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多